Accessibility/Mac2020

From MozillaWiki
Jump to navigation Jump to search
MACCESSIBILITY 2020

This page provides information about our efforts in 2020 to improve Firefox accessibility on OSX.

Rationale

OSX is a popular platform among web developers and designers. It is important we provide a means for testing web content accessibility in OSX. Historically, our OSX support has been plagued with performance issues, but we can still provide a good benchmark for developers to test with. After we reach API completeness, we will do a second pass to optimize the experience for VoiceOver users and assure the performance is optimal and comparable to other browsers.

Plan

Throught 2020 we plan to improve Firefox VoiceOver support to provide an accessible experience to users, and a dependable testing platform for web developers who see to make their web applications accessible.

With this work we hope to tackle several areas:

External Tooling

This includes scripts and programs that will give us insight into our current support and browser compliance in general. Examples of such tools include a tree dumper, event logger, VoiceOver automation tool, and VoiceOver benchmarking.

Automated Testing

We should strive to have as much automated test coverage as possible. With the exception of Android we don't currently have any real platform accessibility testing happening in-tree in CI. There is a potential to introduce this in Mac. This will allow us to maintain a our Mac accessibility support as our attention goes elsewhere.

Code Modernization and Refactors

The current Mac code was written for older Mac SDKs and uses deprecated calls. In addition, the Mac platform code was introduced before e10s shipped. There are many places where we should be streamlining our codebase so we can continue to extend our Mac support.

Basic VoiceOver Support

Basic support means anything that is needed for VoiceOver to present web content correctly. This includes role, state, events and actions mappings. Most things in https://a11ysupport.io/ that are supported by Safari fall into this category.

VoiceOver Text Support

This includes text editing, so a user has feedback from insertions, deletions, caret and selection changes. and granular text navigation. In addition this would include read-only text navigation by granularity such as character, word and line.

VoiceOver Live Regions

Live regions allow users to know an important part of the page changed. We support Live regions on all major platforms except OSX.

Rotor VoiceOver Support

VoiceOver has a feature called a "rotor" that opens a list of all similar types of items on a page, like headings, links or form controls. We currently don't support it. We need to find an efficient way to do it so that it will be responsive and quick. This has proven tricky in the past since it requires a full tree traversal on potentially very large documents.

VoiceOver Performance

Historically, Firefox's VoiceOver performance made it unusable to casual users. A simple cursor navigation in a page, which should never be more than a small fraction of a second, could sometimes take up to 30 seconds. This year we have already made progress on this front and are in reach of Safari and Chrome response times. With a benchmarking tool we can find additional hotspots and make the VoiceOver experience even smoother. This may involve some selective caching of certain properties and other tricks.

IPC Redirection (exploration)

If time permits it would be cool to explore the possibility of having accessibility services talk directly to content processes and not use the synchronous IPDL calls that link content to the top level process. This can improve performance and help do away with janky synchronous calls.

Roadmap

Since the task is large and hard to scope we will be breaking down the work for each Firefox release with the hope to tackle a common user story or theme on each iteration. While we work on one release we will formalize plans for the next one.

Firefox 75

  • Basic VoiceOver Support
  • VoiceOver Performance
  • External Tooling

In Firefox 75 we focused on building tools for querying Mac accessibility APIs and VoiceOver. This helped us better understand the space and gives us what we need to continue building our Mac support. We also got our feet wet in the Mac codebase and resolved some pressing issues we noticed immediately like focus behavior and labeling. Notably, we uncovered a major performance bug that quickly made us quick.

Full Query
ID Summary Priority Status
1380027 OSX VoiceOver cursor does not respond to tab key press with e10s P3 VERIFIED
1611428 aria-label does not work in input field with VoiceOver P3 RESOLVED
1614079 Hit testing does not cross process boundaries in e10s P3 RESOLVED
1614834 Items don't scroll into view with VoiceOver cursor P3 VERIFIED
1614835 Items don't focus when VoiceOver's cursor lands on them P3 VERIFIED
1617301 VoiceOver does not follow keyboard focus P2 VERIFIED
1618364 Allow AppKit to cache accessible tree P2 RESOLVED
1619438 Null-check mContent before trying to get dom node id P1 RESOLVED
1619458 Don't expose browser tooltips to VoiceOver P2 VERIFIED

9 Total; 0 Open (0%); 4 Resolved (44.44%); 5 Verified (55.56%);


Firefox 76

  • Basic VoiceOver Support
  • Automated Testing
  • Code Modernization and Refactors

In Firefox 76 we are focusing on basic VoiceOver support and beginning to apply our knowledge of what is needed towards refactors, cleanup, and hopefully a start on automated testing.

Full Query
ID Summary Priority Status
1124681 [Mac] The checked state of a checkbox is not correctly exposed P1 VERIFIED
1371712 AXSubrole missing for ARIA landmark roles used on non-landmark HTML elements P3 RESOLVED
1616679 VoiceOver doesn't announce clickable item P1 VERIFIED
1617308 Fieldsets not announced as groupings in VoiceOver P1 VERIFIED
1617310 has popup menu items should be spoken as buttons in voiceover P1 VERIFIED
1617311 Details element and state are not spoken in VoiceOver P1 VERIFIED
1617312 Text leaves should not have description attributes P1 VERIFIED
1617314 aria-current not spoken in VoiceOver P1 VERIFIED
1618700 Selected aria tab is not indicated in VoiceOver or announced when selected. P1 VERIFIED
1618706 VoiceOver does not speak cells in a table with role of grid P1 VERIFIED
1618708 VoiceOver does not speak value changes in slider P1 VERIFIED
1618712 aria heading level is not announced in VoiceOver P1 VERIFIED
1618716 aria-invalid is not announced in VoiceOver P1 VERIFIED
1618718 support aria-pressed P1 VERIFIED
1618719 support role=radiogroup in VoiceOver P1 VERIFIED
1620318 Invisible context menu shows up as a top level group even when it is not open P1 VERIFIED
1621724 aria-invalid does not report correct value when e10s are disabled on mac P1 RESOLVED
1622731 Crash in [@ mozilla::dom::XULTreeElement::GetTreeBodyFrame] P1 VERIFIED
1623399 Doorhangers remain visible in VO after they are gone. P1 VERIFIED
1623402 "Show Context Menu" action is not supported when using VoiceOver P1 RESOLVED
1624434 VoiceOver repeats text in table headers P1 VERIFIED
1624729 Introduce Mac platform mochitests P1 RESOLVED
1625293 Crash potential when root accessible is destroyed P1 RESOLVED
1625832 VoiceOver "Show context menu" clicks in the wrong place P1 VERIFIED
1626036 Cache as many states as possible P1 RESOLVED
1626638 Tabs do not report correct subrole in OSX P1 RESOLVED
1626639 Radio buttons do not pass checked state in OSX P2 RESOLVED

27 Total; 0 Open (0%); 8 Resolved (29.63%); 19 Verified (70.37%);


Firefox 77

  • Basic VoiceOver Support
  • Code Modernization and Refactors

In Firefox 77 we will continue to focus on basic VoiceOver support, refactor and modernize our codebase, and expand our Mac test coverage.

Full Query
ID Summary Priority Status
914052 Implement necessary text retrieval bits of NSAccessibility protocol P1 RESOLVED
1143122 Firefox on Mac with VoiceOver fails to say the letter as you type in any text input field P1 RESOLVED
1408620 "Speak selected text when the key is pressed" (TTS) feature of OSX no longer works in Firefox 57 P1 RESOLVED
1618705 VoiceOver says HTML table has 0 columns P1 VERIFIED
1619752 VoiceOver doesn't recognise link-groups in firefox P1 VERIFIED
1624936 VoiceOver does not speak 'required' attribute on radio buttons P1 VERIFIED
1624938 VoiceOver does not speak 'aria-required' attribute on radio buttons P1 RESOLVED
1624940 VoiceOver does not report disabled options in selects P1 RESOLVED
1624954 Support other aria-haspopup values besides "true" P1 VERIFIED
1624964 VoiceOver does not speak "visited" link status P1 VERIFIED
1625266 VoiceOver does not report value, value changes for stepper P1 VERIFIED
1625489 Speak list bullets/numbers in VoiceOver P1 VERIFIED
1625864 Non-linked html:a elements should not be exposed as links to VoiceOver. P1 VERIFIED
1625870 Support figure and figcaption in OS X. P1 VERIFIED
1627311 Remove unnecessary link actions P1 RESOLVED
1627763 Context Menu should launch from center of focused item, not upper left P1 VERIFIED
1627765 Stop caching children in mac P1 RESOLVED
1627832 Prune all invisible children of top-level window P1 RESOLVED
1627899 Intermittent accessible/tests/browser/mac/browser_app.js | Test timed out - P1 RESOLVED
1631406 VoiceOver calls HR elements splitters, not separators like Safari does. P1 RESOLVED
1655084 VoiceOver doesn't read aria-label on <nav> and aria-labelledby on a <div> with role="region" P1 RESOLVED
1658413 Prune subtrees of grouped elements for correct tree navigation with VoiceOver P1 RESOLVED
1662887 role="timer" and aria-live="off" P1 RESOLVED
1671712 When loading Facebook VO cursor gets stuck in first text leaf P1 RESOLVED
1674487 When focusing message text box in Slack, VoiceOver reads "object replacement character" P1 RESOLVED
1675296 Firefox freezes as soon as VoiceOver navigates into the Main landmark of the Facebook news feed P1 RESOLVED
1676668 Gmail: When selecting a message in Inbox, the changed name is not being read by VoiceOver. P1 RESOLVED
1676746 Gmail will freeze then crash [OOM in mozilla::a11y::HyperTextAccessibleWrap::TextForRange ) P1 RESOLVED
1677122 Outline and Outline row hierarchy still incorrect: Children of row appear as children of table, row is missing. P1 RESOLVED
1679401 Firefox Crashes when reaching about:preferences using VoiceOver P1 RESOLVED
1680331 Gmail: Delays of 1 second when navigating in a conversation with Braille active. P1 RESOLVED
1684383 Login options are not reached by VO Command on Reddit.com P1 RESOLVED
1687257 Radio button navigation with VoiceOver loses focus P1 RESOLVED

33 Total; 0 Open (0%); 23 Resolved (69.7%); 10 Verified (30.3%);


Firefox 78

TBD

Backlog

Full Query
ID Summary Priority Status
746160 [Meta] Various new Mac a11y Mochitest failures P3 NEW
746177 Test timeout in events/test_focus_autocomplete.xul when testing the Yahoo! search field. P3 NEW
746183 Unexpected termination of complete test run in events/test_focus_contextmenu.xul P3 NEW
746519 Test timeout in events/test_focus_general.html when testing link tab shift. P3 NEW
746534 events/test_focus_selects.html unexpectedly terminates P3 NEW
746971 events/test_focus_tabbox.xul fails on Mac imminently P3 NEW
746974 Some hittest/ tests receive wrong deepest child on Mac P3 NEW
746977 tree/test_cssoverflow.html: shift tab failing, no focus event and a test timeout P3 NEW
751665 [Mac] TEST-UNEXPECTED-FAIL | chrome://mochitests/content/a11y/accessible/events/test_focus_menu.xul | Test timed out. P3 NEW
890795 Intermittent TEST-UNEXPECTED-FAIL | events/test_focus_autocomplete.xhtml,test_focus_autocomplete.xul | uncaught exception - NS_ERROR_ILLEGAL_VALUE: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIAccessible. P3 REOPENED
1167937 test_doc_busy.html attempts to install an empty XPI file, leaving behind a popup notification that interferes with other tests P3 NEW
1275513 Fix and re-enable a few combobox keyboard tests on OSX P3 NEW
1624958 VoiceOver cursor is lost when container changes role P3 NEW
1625880 Support heading announcements inside summary elements. P3 NEW
1625929 Support aria-modal in OS X. P3 NEW
1627812 Rework context menu code to work with headless widgets P3 NEW
1639745 AXMathLineThickness should return 1 with a visible fraction P3 NEW
1641717 Remove unused tokens from accessible.properties P3 NEW
1647831 Match WebKit on supported attributes for AXWebArea P3 NEW
1666606 [meta] Support additional search predicate keys required for content navigation P3 NEW
1680839 When navigating to an anchor inside a container with additional text, VO cursor intermittently jumps back to the container. P3 NEW
1682908 After some time, selecting text causes all text to be repeated twice by VoiceOver. P3 NEW
1685993 User is unable to navigate properly in a Menu with multiple submenus using the VO commands P3 NEW
1686188 Profile Manager is not Detected by VoiceOver P3 NEW
1686717 VO-C-C commands will not read the entire column when navigating through a table using Voice Over P3 NEW
1686932 Voice Over remains locked inside Overflow menu after selecting a Bookmark P3 NEW
1690122 Add VoiceOver support for linked header attributes on columns and tables P3 NEW
1694261 Bookmarks panel remains navigable with VO after closed P3 NEW

28 Total; 28 Open (100%); 0 Resolved (0%); 0 Verified (0%);