Closed Bug 998590 Opened 11 years ago Closed 6 years ago

expose heading level in acc layer based on outline depth not heading numeric value

Categories

(Core :: Disability Access APIs, defect)

x86_64
Windows 8.1
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla71
Tracking Status
firefox71 --- fixed

People

(Reporter: faulkner.steve, Assigned: emilio)

References

Details

Attachments

(3 files)

Currently the HTML5 outline algorithm [1] is not implemented, I propose implementing and exposing as a DOM method (document.outline()) so developers and 3rd part software such as assistive technology can provide a document outline to users. The HTML5 outline algorithm is implemented in conformance checkers: http://validator.w3.org/nu/ https://github.com/validator/ and browser extensions: https://chrome.google.com/webstore/detail/html5-outliner/afoibpobokebhgfnknfndkgemglggomo?hl=en [1] http://www.w3.org/html/wg/drafts/html/master/sections.html#outlines
related User Agent Accessibility Guideline criteria Provide alternative views http://www.w3.org/TR/UAAG20/#gl-alternative-views
Some background to this ticket, and how I think it should be repurposed to fix the more immediate issue https://code.google.com/p/chromium/issues/detail?id=365070#c2
i.e. implement 'heading role, with the aria-level property set to the element's outline depth' as per http://www.w3.org/html/wg/drafts/html/master/dom.html#sec-implicit-aria-semantics Acc API mappings http://rawgit.com/w3c/html-api-map/master/index.html#el-h1-h6 * MSAA + IAccessible2 * Role: IA2_ROLE_HEADING Object attributes: level:<heading_level> Interfaces: IAccessibleText2; IAccessibleHypertext2; *ATK* Role: ATK_ROLE_HEADING Object attributes: level:<heading_level> Interfaces: AtkText; AtkHypertext *AX* AXRole: AXHeading AXSubrole: (nil) AXRoleDescription: "heading" Properties: Use AXLevel to expose the heading level
Summary: expose output of html5 outline algorithm as a DOM method → expose heading level in acc layer based on outline depth not heading numeric value
(In reply to steve faulkner from comment #0) > Currently the HTML5 outline algorithm [1] is not implemented, I propose > implementing and exposing as a DOM method (document.outline()) so developers > and 3rd part software such as assistive technology can provide a document > outline to users. > Note: while dom api proposal is wider in scope, it would provide a more robust/useful implementation for acc tools and developers of all stripes. Not all screen readers access the acc tree exposed via acc APIs, as I understand it chromevox is JS/DOm based, so exposing via MSAA/Ia2/STK/Ax acc APIs only, does not provide the ability for DOM based tools such as chromevox to access the output of a document outline exposed in the acc layer only.

Emilio, I propose we prototype the algorithm in https://github.com/whatwg/html/issues/5002, i.e.,

  • For h1, its level is the number of section/article/aside/nav ancestor elements + 1.
  • For hN with N in the range 2 to 6, inclusive, if their parent is hgroup, their level is the number of section/article/aside/nav ancestor elements + N.
  • For hN with N in the range 2 to 6, inclusive, if their parent is not hgroup, their level is N.

and enable that on Nightly (and maybe Dev?).

I think we want to wait with :heading/:heading() until it's a bit clearer what the syntax situation would look like for that and until there are more tests.

I'll take care of the intent to prototype.

Flags: needinfo?(emilio)
See Also: → 1588784

I don't think these need invalidation of any sort since they only depend on
ancestors, and we recreate accessibles when the element's ancestor chain changes.

Flags: needinfo?(emilio)
Pushed by ealvarez@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/0e06e454c8c8 Cleanup HTMLHeadingElement, and add HTMLHeadingElement::FromNode. r=bzbarsky https://hg.mozilla.org/integration/autoland/rev/e46f94e12554 Factor out heading accessibility level into HTMLHeadingElement. r=MarcoZ https://hg.mozilla.org/integration/autoland/rev/41b4f84dd944 Prototype accessibility level changes for headings behind a pref. r=MarcoZ
Assignee: nobody → emilio
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: