Last Comment Bug 838407 - aria-hidden false value shouldn't be exposed via object attributes
: aria-hidden false value shouldn't be exposed via object attributes
: access
Product: Core
Classification: Components
Component: Disability Access APIs (show other bugs)
: unspecified
: All All
-- normal (vote)
: mozilla21
Assigned To: alexander :surkov
: alexander :surkov
Depends on:
Blocks: aria
  Show dependency treegraph
Reported: 2013-02-05 17:33 PST by alexander :surkov
Modified: 2013-03-30 21:22 PDT (History)
2 users (show)
ryanvm: in‑testsuite+
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---

patch (7.00 KB, patch)
2013-02-08 00:51 PST, alexander :surkov
tbsaunde+mozbugs: review+
Details | Diff | Splinter Review

Description User image alexander :surkov 2013-02-05 17:33:40 PST
aria-hidden:false doesn't have any meaning since it can't be used to show a hidden content, neither not rendered content nor aria-hidden=true content.

1) not visible content:

5.1.1. Excluding Elements from the Accessibility Tree (

"Elements, including their descendents, that have host language semantics specifying that the element is not displayed, such as CSS display:none or visibility:hidden or HTML 5 hidden attribute."

That means aria-hidden=false can't be used to show the element having display:none

2) aria-hidden=true content (thanks to Joseph for clarification, citing him):

The UAIG also gives rules for when to exclude elements from the a11y tree in section 5.1.1 ( Specifically:

• Elements, including their descendents, that have a WAI-ARIA global attribute of |aria-hidden| <>|="true".| In other words, |aria-hidden="true"| on a parent overrides |aria-hidden="false"| on descendants.

There was a relatively lengthy discussion about this a while back. The conclusion, in the end, was that aria-hidden mirrors CSS display:none. If you have:

<div style="display:none"> ... stuff ... <div style="display:block">Is this displayed?</div> ... other stuff ... </div>

The "Is this displayed" is *not* displayed. The ancestral display:none style overrules the local display:block style. That is documented in the CSS spec as well:
Comment 1 User image alexander :surkov 2013-02-08 00:51:25 PST
Created attachment 711737 [details] [diff] [review]
Comment 2 User image Ryan VanderMeulen [:RyanVM] 2013-02-10 10:22:08 PST
Comment 3 User image alexander :surkov 2013-02-10 17:59:30 PST
(In reply to Ryan VanderMeulen [:RyanVM] from comment #2)

this was empty checking, the correct one is
Comment 4 User image Ryan VanderMeulen [:RyanVM] 2013-02-11 11:16:58 PST

Note You need to log in before you can comment on or make changes to this bug.