- From: Joseph Scheuhammer <clown@alum.mit.edu>
- Date: Thu, 29 May 2014 09:43:01 -0400
- To: Alexander Surkov <surkov.alexander@gmail.com>, W3C WAI Protocols & Formats <public-pfwg@w3.org>
Hi Alex, > Hi. Lately I run into examples of widgets having presentational > content as part of their implementation and that content is exposed to > AT which is unfortunate. For example a custom button > > <div role="button"> > Presentational content > </div> > > UAIG guide suggests [1] to exclude the content from the tree under > certain elements aka "Children of objects which have the > characteristic "Children Presentational: True":". It's not clear with > me what "Children Presentational" is and that's the first issue. The definition of presentational children is given at http://www.w3.org/WAI/PF/aria/roles#childrenArePresentational. The idea is that all of the descendant elements of certain roles have an implicit role="presentation", relieving the author of having to explicitly add that role to all of the elements of the DOM sub-tree. With respect specifically to the button role, ARIA 1.0 sees a button as atomic. There is no structure within a button in the sense that buttons do not have any required descendants. For example, compare the characteristics table of button (http://www.w3.org/TR/2014/REC-wai-aria-20140320/roles#button) and combobox (http://www.w3.org/TR/2014/REC-wai-aria-20140320/roles#combobox). The latter requires both a textbox and listbox as children. > The second one the requirement prevents the author to create menu > buttons like: > > <div role="button">Button > <div role="button">menu button</div> > </div> > > (check out XUL example [2]). I'm not convinced that this is a single button. There are clearly two interactive areas, even though they are rendered as a single entity. If the user clicks one of the areas, it acts like a push button. If the user clicks the second area, it acts like a menu button. It looks like an attempt at a combobox without an editable field -- a "combobutton"? However, if this UI pattern is commonplace, then we should consider allowing ARIA buttons to have structure within them. Note that the section in the spec about presentational children does not specify explicitly the effect of setting a role on one of the descendants. It implies that is an author error and is to be ignored, but it could also work as an override of the implicit presentational role. There is precedence for this where role="presentation" is applied to containers with required descendants (e.g., table). There every required descendant (e.g, tr, td) inherits the presentation role, i.e. role="presentation" is implicit. But, that can be overridden by adding an explicit role . See http://www.w3.org/TR/2014/REC-wai-aria-20140320/roles#presentation, specifically: " Explicit roles on a descendant or owned element override the inherited role of presentation, and cause the owned element to behave as any other element with an explicit role." I'd prefer overriding implicit role=presentation to adding aria-hidden to the mix. -- ;;;;joseph. 'A: After all, it isn't rocket science.' 'K: Right. It's merely computer science.' - J. D. Klaun -
Received on Thursday, 29 May 2014 13:43:32 UTC