Closed Bug 719770 Opened 14 years ago Closed 7 years ago

Various accessibility markup problems with the XUL of easy add-on prefs

Categories

(Toolkit :: Add-ons Manager, defect)

defect
Not set
major

Tracking

()

RESOLVED INACTIVE

People

(Reporter: MarcoZ, Unassigned)

References

Details

(Keywords: access)

Attachments

(1 file, 2 obsolete files)

1. With bols (checkboxes), the checkbox and the associated label are not linked together. As such, the checkbox itself is not labelled. From other XUL, the value attribute is used to label the checkbox, this does not seem to happen here, instead, a separate label appears to be used. 2. With a group of radio buttons, the heading label is not assiciated with the radio group. It should be via its control attribute, or alternatively, by a dynamically inserted aria-labelledby attribute on the radio group pointing to the ID of the header label. 3. There may be problems with buttons, but the extension that I saw, the Adblock Plus Customizations add-on, exposes these two problems, as will most probably do most other add-ons using these new customization UI snippets.
Assignee: nobody → geoff
Status: NEW → ASSIGNED
Attached patch patch (obsolete) — Splinter Review
Attachment #593288 - Flags: feedback?(bmcbride)
Comment on attachment 593288 [details] [diff] [review] patch Review of attachment 593288 [details] [diff] [review]: ----------------------------------------------------------------- So.... this is gonna sound a little crazy at first (and possibly afterwards too). But: IDs in XBL lead to misery and despair. Have a look at how the normal XUL checkbox binding makes itself accessible: https://mxr.mozilla.org/mozilla-central/source/toolkit/content/widgets/checkbox.xml Specifically, it implements nsIAccessibleProvider, with the accessibleType property set to nsIAccessibleProvider.XULCheckbox. That corresponds to nsIDOMXULCheckboxElement, which exposes properties (like checked) used by the accessibility code. That binding also extends general.xml#basetext, which implements nsIDOMXULLabeledControlElement - and that exposes the label to the accessibility code. It means you have to expose a few extra properties, but it gets rid of the IDs in XBL hack.
Attachment #593288 - Flags: feedback?(bmcbride) → feedback-
Attached patch patch v2 (obsolete) — Splinter Review
I had TryServer make some builds of this patch. A few settings types haven't been fixed yet. http://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/geoff@darktrojan.net-574bf02d5f20/ There's a new version of the example addon here, which has all the various types. https://bugzilla.mozilla.org/attachment.cgi?id=597354&action=edit
Attachment #593288 - Attachment is obsolete: true
Attachment #597358 - Flags: feedback?(marco.zehe)
Attachment #597358 - Flags: feedback?(bmcbride)
Comment on attachment 597358 [details] [diff] [review] patch v2 Unfortunately this is not right yet. The type and such were never the problem, so I don't think it is necessary to reimplement these methods for the nsIAccessibleProviders again. They inherit it from the XUL elements used. The problem is the *labels* for checkboxes, for example, and the labels for grouping elements. Radio buttons work, they even give a nice description what "on", "off", "default" etc. mean, but the other settings themselves do not yet work better.
Attachment #597358 - Flags: feedback?(marco.zehe) → feedback-
(In reply to Marco Zehe (:MarcoZ) from comment #4) > so I don't think it is necessary to reimplement these methods for > the nsIAccessibleProviders again It's a prerequisite to fix this without using hacks, since the inline prefs are actually re-implementing those widgets in XBL (using the control attribute requires using element IDs, which you can't do in XBL). The labels still aren't associated in this patch because the "label" property isn't hooked up right. With that fixed, it works (without hacks!). The bindings inherit from general.xml#basetext - the "label" property in that binding looks for the "label" attribute... but our bindings use an attribute called "title" instead. So you'll need to make the "label" property in setting-base look at the right attribute. Also, settings can have additional description text... AFAIK, the accessibility code doesn't look for this in any interface, but does look for it in the "tooltiptext" attribute, so just mirror the text from the "desc" attribute. I assume Marco only tested the automatic updates radio controls - the radio controls for inline prefs are described as having "undefined grouping".
Attachment #597358 - Flags: feedback?(bmcbride) → feedback+
Comment on attachment 597358 [details] [diff] [review] patch v2 Thanks for the explanation, Blaire! Changing to an f+ under these circumstances so that we can move forward. I did, by the way, see those "undefined grouping" radio buttons, too.
Attachment #597358 - Flags: feedback- → feedback+
Attached patch wipSplinter Review
I'm starting to get somewhere, AFAICT the checkboxes and textboxes work as they should. The radiogroup and menulist prefs have stray accessible objects that need to be got rid of but mostly they work.
Attachment #597358 - Attachment is obsolete: true
Attachment #598515 - Flags: feedback?(bmcbride)
Attachment #598515 - Flags: feedback?(bmcbride)
Geoff: Any progress here?
None at all, unfortunately.
Assignee: geoff → nobody
Status: ASSIGNED → NEW
Per policy at https://wiki.mozilla.org/Bug_Triage/Projects/Bug_Handling/Bug_Husbandry#Inactive_Bugs. If this bug is not an enhancement request or a bug not present in a supported release of Firefox, then it may be reopened.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INACTIVE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: