Closed
Bug 419416
Opened 16 years ago
Closed 16 years ago
ARIA properties must work with <frame> or <iframe>
Categories
(Core :: Disability Access APIs, defect)
Core
Disability Access APIs
Tracking
()
RESOLVED
FIXED
People
(Reporter: aaronlev, Assigned: aaronlev)
References
(Blocks 1 open bug, )
Details
(Keywords: access, Whiteboard: Needed for mashup use cases of ARIA)
Attachments
(1 file, 3 obsolete files)
31.72 KB,
patch
|
ginnchen+exoracle
:
review+
damons
:
approval1.9+
|
Details | Diff | Splinter Review |
We need to investigate this. An <iframe> could represent an AJAX widget. The author of the widget may have put in some ARIA, but the user of the widgets may also wish to set them (e.g. labelledby). Possibly the properties should be combined or the outer properties should override the inner properties.
Assignee | ||
Comment 1•16 years ago
|
||
Testcase of a listbox using an iframe: http://www.mozilla.org/access/dhtml/listbox-in-iframe Rules for dealing with iframes: http://developer.mozilla.org/en/docs/ARIA_UA_Best_Practices#11.3.17_Documents.2C_Handling_.3Cframe.3Es_and_.3Ciframe.3Es
Assignee | ||
Comment 2•16 years ago
|
||
Feedback on the rules I'm implementing would be great -- section 11.3.17 at: http://developer.mozilla.org/en/docs/ARIA_UA_Best_Practices#11.3.17_Documents.2C_Handling_.3Cframe.3Es_and_.3Ciframe.3Es
Assignee | ||
Comment 3•16 years ago
|
||
In addition the listbox ends up in the tab order twice -- I need to work on that in a separate bug.
Assignee | ||
Comment 4•16 years ago
|
||
Changes by file: Index: accessible/public/nsPIAccessible.idl Add getARIAState() so that we can independently override built-in states after they have been calculated. First we will use the states from the <body> and then from the owner node on the outer doc. Index: accessible/src/base/nsAccessibilityService.cpp Use the ARIA role for document nodes Index: accessible/src/base/nsAccessibilityUtils.cpp New method to set container-foo object attributes appropriately for a parent chain within a single document. Index: accessible/src/base/nsAccessible.cpp 1) GetRoleContent() -- only use <body>/<frameset> for HTML -- never the doc element 2) GetAttributes() -- allow array of preexisting attributes to be passed in as a starting point so that we can override doc accessible object attributes with that from frame/iframe. 3) GetAttributesInternal() -- move GetLastEventAttributes() here. It doesn't need to be calculated twice. Also move container-foo object attribute calc here. We need special rules to deal with full parent chain, because outer docs override. Within the same doc inner nodes override. 4) GetARIAState() -- pass in previous state so we can modify and override states Index: accessible/src/base/nsDocAccessible.cpp 1) GetName() -- Prefer name from outer node 2) GetValue() -- this is an MSAA hack -- move to MSAA code 3) SetRoleMapEntry() -- prefer role from outer node 4) GetDescription() -- prefer from outer node 5) GetARIAState() -- prefer ARIA state from outer node 6) GetAttributes() -- prefer ARIA object props from outer node 7) Init() -- ensure creation of parent and don't restrict role used by iframe Index: accessible/src/base/nsOuterDocAccessible.cpp Override GetAttributesInternal() so that only ARIA attributes done in nsAccessible::GetAttributes() get overriden Index: accessible/src/base/nsRootAccessible.cpp Allow aria-activedescendant on <body> Index: accessible/src/msaa/nsAccessibleWrap.cpp Return NULL and PR_FALSE if no value. This is what IE does -- we have that wrong. Index: accessible/src/msaa/nsDocAccessibleWrap.cpp Check for actual accessible value. If no value and we're some kind of doc, then use URL value hack.
Attachment #308684 -
Attachment is obsolete: true
Attachment #308937 -
Flags: review?(surkov.alexander)
Assignee | ||
Updated•16 years ago
|
Flags: blocking1.9?
Whiteboard: Needed for mashup use cases of ARIA
Assignee | ||
Comment 5•16 years ago
|
||
Attachment #308937 -
Attachment is obsolete: true
Attachment #309171 -
Flags: superreview?(ginn.chen)
Attachment #309171 -
Flags: review?(surkov.alexander)
Attachment #308937 -
Flags: review?(surkov.alexander)
Assignee | ||
Comment 6•16 years ago
|
||
Attachment #309171 -
Attachment is obsolete: true
Attachment #309182 -
Flags: review?(surkov.alexander)
Attachment #309182 -
Flags: review?(ginn.chen)
Attachment #309171 -
Flags: superreview?(ginn.chen)
Attachment #309171 -
Flags: review?(surkov.alexander)
Attachment #309182 -
Flags: review?(ginn.chen) → review+
Assignee | ||
Updated•16 years ago
|
Attachment #309182 -
Flags: review?(surkov.alexander) → approval1.9?
Comment 7•16 years ago
|
||
Comment on attachment 309182 [details] [diff] [review] 1)Move class object attr impl so doc can have it's own, 2) Fix DOCUMENT -> DIALOG in nsDocAccessibleWrap::get_accValue() a1.9+=damons
Attachment #309182 -
Flags: approval1.9? → approval1.9+
Assignee | ||
Updated•16 years ago
|
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Comment 8•4 years ago
|
||
The behaviour where outer documents can override live region markup on inner iframe documents is being removed in bug 1572860.
See Also: → 1572860
You need to log in
before you can comment on or make changes to this bug.
Description
•