- From: Joseph Scheuhammer <clown@alum.mit.edu>
- Date: Wed, 15 Feb 2012 11:25:06 -0500
- To: "wai-xtech@w3.org" <wai-xtech@w3.org>
- CC: Janina Sajka <janina@rednote.net>
Janina asked me to re-post this to the wai-xtech (this) list. To give context, she had advised the PFWG regarding the HTML-WG's take on aria-hidden: > Subject: > HTML-ISSUE-204 (aria-hidden): Excempt ARIA attributes from the rule > that prohibits reference to hidden elements [HTML 5 spec] > From: > HTML Weekly Issue Tracker <sysbot+tracker@w3.org> > Date: > 12-02-14 7:38 AM > > To: > <public-html-wg-issue-tracking@w3.org> > > > HTML-ISSUE-204 (aria-hidden): Excempt ARIA attributes from the rule that prohibits reference to hidden elements [HTML 5 spec] > > http://www.w3.org/html/wg/tracker/issues/204 > > Raised by: Sam Ruby > On product: HTML 5 spec > > This issue was split off of issue-30 and is intended to cover the change originally proposed in the details section of: > > http://www.w3.org/html/wg/wiki/ChangeProposals/DeprecateLongdesc#Details > > To which I replied: > This issue was split off of issue-30 and is intended to cover the > change originally proposed in the details section of: > > http://www.w3.org/html/wg/wiki/ChangeProposals/DeprecateLongdesc#Details With respect to aria-describedby the above proposes that aria-describedby trumps aria-hidden, and forces the rendering of the hidden element. It goes further, and requires that elements hidden via CSS must be exposed if they are referenced by some aria-* attribute: > Note: Implementations are encouraged to follow the recommendation in > ARIA specification and expose the full semantics of any HTML elements > linked to by aria attributes. For example if an aria-describedby > attribute points to a <a> element or a <table> element, then it is > recommended that implementations expose the full semantics of those > elements rather than for example just their textual contents. This > applies even if those elements aren't rendered, for example due to CSS This is the opposite of where we landed at yesterday's telecon. We concluded that CSS hiding and aria-hidden trumps aria-describedby. (The rationale being that there is no accessible in the a11y tree for the hidden element, so there is nothing to point to via describedby, and users cannot navigate to something that isn't rendered). Which is correct? The possibilities are: 1. If an author uses one element to reference another (e.g., aria-describedby, aria-owns, etc.), then user agents must ignore any @hidden, @aria-hidden, css visibility:hidden, and display:none. The a11y tree exposes both elements, and exposes the relationship between them (e.g., described-by/description-for). 2. If an author uses one element to reference another, but that second element is "hidden", then the a11y tree does not contain an accessible for the hidden element, and the relationship is not exposed. The UAIG implies (1) in section "5.1.1 Including Elements in the Accessibility Tree" [1], specifically the last bullet: > * Elements that have an ID which is referenced by another element via > a WAI-ARIA relation (aria-controls, aria-describedby, aria-flowto, > aria-labelledby or aria-owns) and do not have a role of presentation > directly or inherited from an owning element. Note the escape clause regarding presentation: if the referenced element has role of presentation, then the element is not included, regardless of any specified relationship (again, presumably because presentation elements are not exposed in the tree). Easily fixed to add another escape with respect to hidden, if we decide that is the way to go. Related question: what happens in a tabbed pane where a tab aria-controls a tab panel, but that panel is currently hidden because some other tab is selected? (Assumption: CSS display:none is used to hide all the non-selected tab panels). This is the same issue, but with a different relationship. Does the relationship possibly shape the policy? Or does hidden always hide the relationship? My guess is that if hidden elements are not exposed, then no relationship can exist. Still, it seems odd for the tab panel case; after all, the controlled panel still exists; it's just not rendered (i.e, still wrapping my head around this). [1] http://www.w3.org/WAI/PF/aria-implementation/#include_elements -- ;;;;joseph. 'A: After all, it isn't rocket science.' 'K: Right. It's merely computer science.' - J. D. Klaun -
Received on Wednesday, 15 February 2012 16:25:37 UTC