- From: Joseph Scheuhammer <clown@alum.mit.edu>
- Date: Mon, 30 Nov 2015 10:09:03 -0500
- To: Amelia Bellamy-Royds <amelia.bellamy.royds@gmail.com>, PF <public-pfwg@w3.org>
- Cc: Cynthia Shelly <cyns@microsoft.com>, Chaals from Yandex <chaals@yandex-team.ru>, SVG-A11y TF <public-svg-a11y@w3.org>
Hi Amelia, I wrote: > Just a note to say I've skimmed it and realized it's going to take me a while to give it the attention it deserves. I'll be picking away at it as time permits. I am working through your changes, and am concentrating on the changes to the core algorithm (accname-aam.html) for now. Rather than wait until I've gone through a complete analysis, I've decided to start by commenting on some of the changes I've noticed, and followup with more as I go along. First off, this is a good refactoring of the algorithms -- thanks for taking the time to do it. Having a document that describes the basic, core aspects of the text alternative computation (TAC), and having other documentation of how different markup languages modify or enhance the basic TAC is why accname-aam.html was separated out from the Core-AAM and ARIA specs in the first place. Secondly, I'm not sure of the best place to make comments. My preference would be to either raise issues on github, or use W3C's bugzilla its issue tracker. Email is my last choice, but since that is where the comments are currently being logged, I'll stay with the flow. * "Authors should/must provide a name" (Section 4.2) (https://rawgit.com/AmeliaBR/aria/acc-name/accname-aam/accname-aam.html#mapping_additional_nd_name) This is true, but I don't think it belongs here, as you suggested in an editor's note. The primary target audience is user agent implementers, and possibly checking tools. Having said that, authors do need guidance, and there should be a companion document for authors. Perhaps the "HTML5: Techniques for providing useful text alternatives" (https://w3c.github.io/alt-techniques), or add a section to the "Authoring Practices Guide" (http://www.w3.org/TR/wai-aria-practices-1.1/). * "Root node" vs. "original node" (Section 4.1) (https://rawgit.com/AmeliaBR/aria/acc-name/accname-aam/accname-aam.html#terminology) It's a good idea to change the term since the "root node" is not always a root in the sense of using its descendent nodes for the computation. For example, the "root node" could have an aria-labelledby that references one of its grandfather's siblings. However, I'm not keen on the term "original". Two terms that may be better are "target" or "primary". "Target" communicates that this is the element for which the TAC is being run. However, "target" might have too much association with DOM events, as in "event target". "Primary" doesn't have that DOM event baggage but it doesn't convey as well that it's the object of the computation. There may be other terms that are better here -- "base" or "basis node"? * Example showing aria-labelledby is only "one hop". (Example in Step 1B) (https://rawgit.com/AmeliaBR/aria/acc-name/accname-aam/accname-aam.html#step-element-ariaby-join) An aria-label has been added to the example that shows the meaning of "if not already processing an aria-labelledby traversal". The original version of the example did not have an aria-label ("Example 1" at step 2B [http://www.w3.org/TR/accname-aam-1.1/#step2B]). The point of the example is to show that if the computation is processing aria-labelledby, it does not process any subsequent aria-labelledby. You can think of it as setting a "labelledby" state, and, while in that state, the TAC does not follow any aria-labelledby on the labelling node. The original example used elements that had aria-labelledby attributes only. Adding an aria-label is distracting since it adds a question about the precedence and interaction of aria-labelledby and aria-label. I would remove the aria-label from this example to keep focus on the aria-labelledby restriction. Regarding precedence of the aria-labelledby over aria-label, that is implicit in the way the current TR of the TAC is worded. If aria-labelledby is encountered, it's used to compute the name. Any aria-label on the same element is ignored, with one exception (there's always an exception). There is an example of how the two can combine in the current TR, specifically when aria-labelledby points "to itself". If that self-same element has an aria-label, then that aria-label *is* used. Here is a very simple example, where the name is "Alfred": <input id="self" aria-labelledby="self" aria-label="Alfred"> Example 2 in the current TR provides an more complex version of this at step 2C (http://www.w3.org/TR/accname-aam-1.1/#step2C). I've repeated part of it below, where the <span> with role="button" has the name "Delete Documentation", composed from a self-referential aria-labelledby and its aria-label: > <a id="file_row1" href="./files/Documentation.pdf">Documentation.pdf</a> > <span role="button" tabindex="0" id="del_row1" aria-label="Delete" aria-labelledby="del_row1 file_row1"></span> * Removal of embedded menu button from Step 2. (https://rawgit.com/AmeliaBR/aria/acc-name/accname-aam/accname-aam.html#step-element-embedded-control) There's an editor comment about removing the menu button as an embedded control since it "... did not seem to be consistent with the concept of menus as a collection of distinct commands (rather than as a selection)." Perhaps, but menu buttons are used that way. Here are a couple of screen shots showing that usage, taken from one of OS X's System Preferences dialogs. http://clown.idrc.ocad.ca/Fluid/aria/MenuButtonPix.html In another email thread, Jon and Nick have suggested dropping the term "menu" and just saying "button" in this case. That might be better, but I had thought that "menu button" was clearer, and would give the reader an idea of why a button was involved here. Perhaps the document should just say "button" here, and point to a usage involving a menu button for clarification. That's it for now; more to come. -- ;;;;joseph. 'Array(16).join("wat" - 1) + " Batman!"' - G. Bernhardt -
Received on Monday, 30 November 2015 15:09:41 UTC