jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/349134 )

Change subject: Set `aria-owns` for everything with a dropdown list (ARIA 
`role=combobox`)
......................................................................


Set `aria-owns` for everything with a dropdown list (ARIA `role=combobox`)

Bug: T149654
Change-Id: I2d27bdbba408c31001e4db088148a3b454eb6e3a
---
M src/mixins/LookupElement.js
M src/widgets/CapsuleMultiselectWidget.js
M src/widgets/ComboBoxInputWidget.js
M src/widgets/DropdownWidget.js
M tests/QUnit.assert.equalDomElement.js
5 files changed, 11 insertions(+), 1 deletion(-)

Approvals:
  jenkins-bot: Verified
  VolkerE: Looks good to me, approved



diff --git a/src/mixins/LookupElement.js b/src/mixins/LookupElement.js
index a95d3eb..dd56bd7 100644
--- a/src/mixins/LookupElement.js
+++ b/src/mixins/LookupElement.js
@@ -61,6 +61,7 @@
        // Initialization
        this.$input.attr( {
                role: 'combobox',
+               'aria-owns': this.lookupMenu.getElementId(),
                'aria-autocomplete': 'list'
        } );
        this.$element.addClass( 'oo-ui-lookupElement' );
diff --git a/src/widgets/CapsuleMultiselectWidget.js 
b/src/widgets/CapsuleMultiselectWidget.js
index 805c2ed..cbcc37e 100644
--- a/src/widgets/CapsuleMultiselectWidget.js
+++ b/src/widgets/CapsuleMultiselectWidget.js
@@ -158,6 +158,7 @@
                this.$input.prop( 'disabled', this.isDisabled() );
                this.$input.attr( {
                        role: 'combobox',
+                       'aria-owns': this.menu.getElementId(),
                        'aria-autocomplete': 'list'
                } );
        }
diff --git a/src/widgets/ComboBoxInputWidget.js 
b/src/widgets/ComboBoxInputWidget.js
index 5342854..440da2a 100644
--- a/src/widgets/ComboBoxInputWidget.js
+++ b/src/widgets/ComboBoxInputWidget.js
@@ -113,6 +113,7 @@
        // Initialization
        this.$input.attr( {
                role: 'combobox',
+               'aria-owns': this.menu.getElementId(),
                'aria-autocomplete': 'list'
        } );
        // Do not override options set via config.menu.items
diff --git a/src/widgets/DropdownWidget.js b/src/widgets/DropdownWidget.js
index b4fd091..1d2ff0e 100644
--- a/src/widgets/DropdownWidget.js
+++ b/src/widgets/DropdownWidget.js
@@ -95,6 +95,7 @@
                .addClass( 'oo-ui-dropdownWidget-handle' )
                .attr( {
                        role: 'combobox',
+                       'aria-owns': this.menu.getElementId(),
                        'aria-autocomplete': 'list'
                } )
                .append( this.$icon, this.$label, this.$indicator );
diff --git a/tests/QUnit.assert.equalDomElement.js 
b/tests/QUnit.assert.equalDomElement.js
index 0fbd024..8d69f23 100644
--- a/tests/QUnit.assert.equalDomElement.js
+++ b/tests/QUnit.assert.equalDomElement.js
@@ -84,10 +84,16 @@
                // Filter out acceptable differences between OOjs UI's PHP 
widgets and JS widgets
                // Automatically generated IDs (Tag::generateElementId(), 
OO.ui.generateElementId())
                if ( summary.attributes.id !== undefined && 
summary.attributes.id.match( /^(ooui-|oojsui-)/ ) ) {
+                       // The 'id' might be missing on the JS side, while PHP 
always generates them for infusion.
                        delete summary.attributes.id;
                }
+               // For other attributes using autogenerated ids, the value 
might differ, but the attribute
+               // should be either present in both PHP and JS, or missing in 
both PHP and JS.
                if ( summary.attributes.for !== undefined && 
summary.attributes.for.match( /^(ooui-|oojsui-)/ ) ) {
-                       delete summary.attributes.for;
+                       summary.attributes.for = '(autogenerated)';
+               }
+               if ( summary.attributes[ 'aria-owns' ] !== undefined && 
summary.attributes[ 'aria-owns' ].match( /^(ooui-|oojsui-)/ ) ) {
+                       summary.attributes[ 'aria-owns' ] = '(autogenerated)';
                }
                // Infusion data
                if ( summary.attributes[ 'data-ooui' ] !== undefined ) {

-- 
To view, visit https://gerrit.wikimedia.org/r/349134
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I2d27bdbba408c31001e4db088148a3b454eb6e3a
Gerrit-PatchSet: 4
Gerrit-Project: oojs/ui
Gerrit-Branch: master
Gerrit-Owner: Bartosz DziewoƄski <matma....@gmail.com>
Gerrit-Reviewer: VolkerE <volke...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to