Closed Bug 376728 Opened 18 years ago Closed 17 years ago

Add WAI-ARIA attributes to chat output

Categories

(Other Applications :: ChatZilla, enhancement)

enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: Gijs, Assigned: Gijs)

References

(Blocks 1 open bug, )

Details

(Keywords: access, Whiteboard: [cz-0.9.79])

Attachments

(1 file, 3 obsolete files)

As in summary. For more info, see the URL. This will help current and future Accessibility Tools cope properly with the act that the DOM we're generating is a region which changes frequently, and help them announce such changes in the correct way. To test such markup, we can for a large part use FireVox, which already supports parts of WAI-ARIA. If we need currently unsupported parts, or feel WAI-ARIA doesn't suit our needs as a chat client, I think this would be a fair place to discuss this as well. CC-ing Aaron Leventhal (a11y module owner) He'll most likely both have opinions on what we should and shouldn't do. I'm not going to be working on this right now (but I hope to do so in a few weeks!), but I'm filing it anyway so we can have useful discussions as-is. I'd like to CC Peter Thiessen, but I can't seem to find a bugzilla user for him...
Hi Gijs, right, FireVox is great for testing WAI-ARIA live region DOM updates. Though, I don't know of any tool that automatically tests for WAI-ARIA compliance (maybe because its still a draft) but it might be a great grant project :)
Relevant newsgroup posts are in mozilla.dev.accessibility. Google groups URL: http://groups.google.com/group/mozilla.dev.accessibility/browse_thread/thread/4d03c955867c09d8
Blocks: cz-a11y
This had been ticking me off for a while now, especially when trying to get the filters working. So let's do this first, as it's a stupid thing anyway. Asking for a stamp from James... (I haven't touched the munger stuff because it's in lib and I didn't want to mix that stuff)
Attachment #280365 - Flags: review?(silver)
Attachment #280365 - Flags: review?(silver) → review+
Comment on attachment 280365 [details] [diff] [review] Change stupid xhtml namespace repetitiveness Checking in mozilla/extensions/irc/xul/content/commands.js; /cvsroot/mozilla/extensions/irc/xul/content/commands.js,v <-- commands.js new revision: 1.128; previous revision: 1.127 done Checking in mozilla/extensions/irc/xul/content/static.js; /cvsroot/mozilla/extensions/irc/xul/content/static.js,v <-- static.js new revision: 1.245; previous revision: 1.244 done
Attachment #280365 - Attachment is obsolete: true
Attached patch Patch to add ARIA attributes (obsolete) — Splinter Review
This patch adds the following stuff: - role="wairole:log" and aaa:live="polite" on the html:table that contains all the messages. This means that WAI-ARIA-supporting-screenreaders will read out changes at a 'normal' non-interruptive rate (so if the user is typing or using menus, the announcements will wait until the screenreader is no longer speaking. - aaa:live="assertive" and aaa:channel="notify" on the messages that are deemed "important". This means that even amongst other messages that come in earlier, this one will be read out first, and will interrupt other messages. Right now, important messages are messages that contain your name or things on the stalk list (modifiable through preferences and the /stalk and /unstalk commands. The message filters support would make this (even) more customizable. - role="wairole:presentation" on the nested tables we insert in the chat output. In theory, this should improve screenreaders coping with the randomly inserted nested tables. I guess I might file a bug on changing this stuff in some way so it's a bit more screenreader friendly, though I'm not sure how we'd do that :-(. - aaa:live="off" and aaa:live="additions removals text" on the userlist and the output window headers. This turns off automatic announcements for them, as we will announce them automatically in the channel anyway (ie, user joins/parts/nick changes/mode changes, as well as topic modifications). Why are we doing this, if it didn't announce anything before we told it about this stuff? Well, because this way users of configurable screenreaders would be able to explicitly turn on announcements if this was somehow important for them. I also removed a random stray check for isImportant - which can never be true at that point, so it was dead code (found this when doing filters, and now it confused me again when adding stuff here, so I'm just removing it so it can do no more harm). r? on silver for the ChatZilla approval, and on aaronlev to doublecheck my a11y rationales.
Attachment #281234 - Flags: review?(silver)
Attachment #281234 - Flags: review?(aaronleventhal)
1. Need to set xmlns:wairole where you set xmlns:aaa="http://www.w3.org/2005/07/aaa" 2. I don't think the important messages need to be assertive -- channel="notify" already take care of getting them spoken ahead of the other items 3. It seems that aaa:relevant="additions removals text" is set in two places (both in markup and JS)
This addresses Aaron's comments. About the 3rd point, however, some more nuance: the js part is about changing the headers (containing the topic in the channel, number of ops/halfops/voiced users/users, IRC URL), the XUL part is about the userlist tree. The headers don't really need the "relevant" attribute as we don't remove anything and the default is "additions text". In the userlist we *can* remove things in theory - in practice I bet RDF screws us three ways to Sunday before it works properly, but that's another bug... (working on it, working on it)
Attachment #281234 - Attachment is obsolete: true
Attachment #281309 - Flags: review?(silver)
Attachment #281234 - Flags: review?(silver)
Attachment #281234 - Flags: review?(aaronleventhal)
Attachment #281309 - Flags: review?(aaronleventhal)
Attachment #281309 - Flags: review?(aaronleventhal) → review+
I actually just realized that the message table should also have relevant="additions", as we remove the oldest items (past the pref-configured treshold) which we shouldn't want spoken.
(In reply to comment #8) > I actually just realized that the message table should also have > relevant="additions", as we remove the oldest items (past the pref-configured > treshold) which we shouldn't want spoken. > Actually, the default is "additions text", apparently - which is good enough for us. So disregard the previous comment. :-)
We can do away with the wairole namespace and "wairole:" prefix for logs, as the spec has changed to that effect.
Comment on attachment 281309 [details] [diff] [review] Patch w/ Aaron's comments addressed >Index: mozilla/extensions/irc/xul/content/output-window.js >+ // Turn off accessibility announcements: they're useless as all these >+ // changes are in the "log" as well, normally. >+ header["container"].setAttributeNS(ARIA_NS, "live", "off"); Are you doing this here because the output window is not running in XHTML, or because you want this to work with custom output windows which use the built-in JS? Either way, I'd like the comment here to explain why it's here. Otherwise, it looks good (assuming you got the accessibility stuff right, but that's not my job ;) ).
Attachment #281309 - Flags: review?(silver) → review+
Comment on attachment 281309 [details] [diff] [review] Patch w/ Aaron's comments addressed Note that: * "wairole:" is no longer necessary, so that should really be removed. * aaa: is not necessary on HTML elements -- for those you can just use aria-[propertyname]
There's no officially released product which only works with the "old" style, right?
(In reply to comment #13) > There's no officially released product which only works with the "old" style, > right? > Not that I'm aware of.
Not well, for live region a11y we need Firefox 3.
Changing the a11y stuff Aaron mentioned. Re-requesting review for those bits. I'm assuming James' review is still good for this.
Attachment #281309 - Attachment is obsolete: true
Attachment #286895 - Flags: review?(aaronleventhal)
You assume right. :)
Attachment #286895 - Flags: review?(aaronleventhal) → review+
Checking in mozilla/extensions/irc/xul/content/chatzilla.xul; /cvsroot/mozilla/extensions/irc/xul/content/chatzilla.xul,v <-- chatzilla.xul new revision: 1.69; previous revision: 1.68 done Checking in mozilla/extensions/irc/xul/content/output-window.js; /cvsroot/mozilla/extensions/irc/xul/content/output-window.js,v <-- output-window.js new revision: 1.19; previous revision: 1.18 done Checking in mozilla/extensions/irc/xul/content/static.js; /cvsroot/mozilla/extensions/irc/xul/content/static.js,v <-- static.js new revision: 1.246; previous revision: 1.245 done
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Whiteboard: [cz-0.9.79]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: