Closed Bug 1732306 Opened 4 years ago Closed 2 years ago

Implement mappings for emphasis, strong, time, and generic ARIA 1.2 roles

Categories

(Core :: Disability Access APIs, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
124 Branch
Tracking Status
firefox124 --- fixed

People

(Reporter: jdiggs, Assigned: nlapre)

References

(Blocks 2 open bugs)

Details

Attachments

(4 files)

I believe these are the last of the unimplemented roles from ARIA 1.2:

  1. data:text/html,<div role='emphasis'>...</div>
    • Linux: ATK_ROLE_STATIC
    • Mac: AXSubrole of AXEmphasisStyleGroup
  2. data:text/html,<div role='strong'>...</div>
    • Linux: ATK_ROLE_STATIC
    • Mac: AXSubrole of AXStrongStyleGroup
  3. data:text/html,<div role='time'>...</div>
    • Linux: ATK_ROLE_STATIC
    • Mac: AXSubrole of AXTimeGroup
  4. data:text/html,<h2 role='generic'>...</h2>
    • Linux: ATK_ROLE_SECTION
    • Mac: AXSubrole of <nil>

Related aside: For many (all?) of the roles in the Core-AAM for which the AXSubrole is specified as "<nil>", Firefox exposes AXUknown. Safari and Chrome expose no subrole. Not sure how much that matters functionally, but it's leading to official test failures. <insert shrug here>

Type: defect → enhancement
Blocks: aria

It looks like also subscript and superscript has not been implemented for IA2, these changes are also for ARIA 1.2:

  1. data:text/html,<div role='subscript'>...</div>
  • Linux: ATK_ROLE_SUBSCRIPT
  1. data:text/html,<div role='superscript'>...</div>
  • Linux: ATK_ROLE_SUPERSCRIPT

I wrote IA2, but meant ATK above. However, it looks like IA2 role mapping is not correct as well.

Best to look at:

(In reply to spectranaut from comment #1)

It looks like also subscript and superscript has not been implemented for ATK, these changes are also for ARIA 1.2:

How did you test this? From what I can see in the code, this has already been implemented. I don't have a Linux setup to test with at the moment, so I can't verify this myself just now.

(In reply to spectranaut from comment #2)

it looks like IA2 role mapping is not correct as well.

data:text/html,<div role='subscript'>...</div>

I see IA2_ROLE_TEXT_FRAME here, which is correct per spec.

Wow so sorry! My mistake, I was testing on an old firefox (104). I can see the correct result now in the nightly.

Here are the IA2 and MSAA roles that need to be updated for these ARIA roles:

  • data:text/html,<div role='emphasis'>...</div>
    • IA2: IA2_ROLE_TEXT_FRAME (spec)
  • data:text/html,<div role='strong'>...</div>
    • IA2: IA2_ROLE_TEXT_FRAME (spec)
  • data:text/html,<div role='time'>...</div>
  • data:text/html,<h2 role='generic'>...</h2>
    • IA2: IA2_ROLE_SECTION (spec)

(In reply to spectranaut from comment #5)

Here are the IA2 and MSAA roles that need to be updated for these ARIA roles:
...

  • data:text/html,<div role='time'>...</div>

based on the discussion in the CORE-AAM PR, this should be ROLE_SYSTEM_GROUPING

Blocks: a11y-wpt

We should also update the HTML mappings for <em>, <strong> and <time>.

This revision implements the mapping for the ARIA 1.2 emphasis role, which was
unsupported in Firefox until now. This change addresses a web platform test
failure. To accomplish this, the revision adds the WAI-defined role, adds a role
enum value, adds platform mappings, and adds a markup role mappnig. The change
requires a new static atom for the word "emphasis," also added in this revision.
Finally, this change removes the expected wpt failure and updates other tests.

Assignee: nobody → nlapre
Status: NEW → ASSIGNED

This revision implements mapping for the ARIA 1.2 'strong' role by adding a
markup mapping, a role definition, and platform mappings. This revision also
removes the expected failures in the wpt test suite and fixes other tests.

Depends on D200130

This revision adds role mappings for the 'time' ARIA role by implementing HTML
markup mapping, adding platform mappings, and adding the role info itself. This
revision also enables the previously-failed wpt tests and fixes other tests.

Depends on D200131

This revision 'implements' the 'generic' ARIA role mapping by mapping ARIA
'generic' to Gecko 'section.' This isn't a full implementation of 'generic' - it
sidesteps it to avoid dealing with larger 'generic' issues (namely: that there
are multiple roles that are 'generic' in Gecko currently). We'll sort that out
in a later commit.

Depends on D200132

Pushed by nlapre@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1824083c6fc1 Part 1: Implement emphasis role mappings, r=Jamie https://hg.mozilla.org/integration/autoland/rev/e063d64d28a6 Part 2: Implement strong role mappings, r=Jamie https://hg.mozilla.org/integration/autoland/rev/44270ea2f53c Part 3: Implement time role mappings, r=Jamie https://hg.mozilla.org/integration/autoland/rev/55e194f1c92d Part 4: Implement generic role mapping, r=Jamie
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/44449 for changes under testing/web-platform/tests

Backed out for causing osx browser-a11y failures on browser_text_basics.js.

[task 2024-02-08T02:01:23.729Z] 02:01:23     INFO - TEST-PASS | accessible/tests/browser/mac/browser_text_basics.js | undefined assertion name - 
[task 2024-02-08T02:01:23.730Z] 02:01:23     INFO - Buffered messages finished
[task 2024-02-08T02:01:23.731Z] 02:01:23     INFO - TEST-UNEXPECTED-FAIL | accessible/tests/browser/mac/browser_text_basics.js | undefined assertion name - Got "", expected "clearly"
[task 2024-02-08T02:01:23.731Z] 02:01:23     INFO - Stack trace:
[task 2024-02-08T02:01:23.731Z] 02:01:23     INFO - chrome://mochikit/content/browser-test.js:test_is:1620
[task 2024-02-08T02:01:23.731Z] 02:01:23     INFO - chrome://mochitests/content/browser/accessible/tests/browser/mac/browser_text_basics.js:null:374
[task 2024-02-08T02:01:23.731Z] 02:01:23     INFO - chrome://mochitests/content/browser/accessible/tests/browser/mac/browser_text_basics.js:null:373
[task 2024-02-08T02:01:23.731Z] 02:01:23     INFO - chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js:accessibleTask/</<:554
[task 2024-02-08T02:01:23.731Z] 02:01:23     INFO - resource://testing-common/BrowserTestUtils.sys.mjs:withNewTab:146
[task 2024-02-08T02:01:23.732Z] 02:01:23     INFO - chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js:accessibleTask/<:473
[task 2024-02-08T02:01:23.732Z] 02:01:23     INFO - chrome://mochikit/content/browser-test.js:handleTask:1139
[task 2024-02-08T02:01:23.732Z] 02:01:23     INFO - chrome://mochikit/content/browser-test.js:_runTaskBasedTest:1211
[task 2024-02-08T02:01:23.732Z] 02:01:23     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1353
[task 2024-02-08T02:01:23.732Z] 02:01:23     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:1128
[task 2024-02-08T02:01:23.732Z] 02:01:23     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/<:1058
[task 2024-02-08T02:01:23.732Z] 02:01:23     INFO - TEST-PASS | accessible/tests/browser/mac/browser_text_basics.js | undefined assertion name -
Flags: needinfo?(nlapre)
Upstream PR was closed without merging

Updated to fix the mac test - see comment here.

Flags: needinfo?(nlapre)
Pushed by nlapre@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1ca3e9ac42e0 Part 1: Implement emphasis role mappings, r=Jamie https://hg.mozilla.org/integration/autoland/rev/a6d188782d5d Part 2: Implement strong role mappings, r=Jamie https://hg.mozilla.org/integration/autoland/rev/d717aa94c2ea Part 3: Implement time role mappings, r=Jamie https://hg.mozilla.org/integration/autoland/rev/55bbf06eb769 Part 4: Implement generic role mapping, r=Jamie
Upstream PR merged by moz-wptsync-bot
Upstream PR merged by moz-wptsync-bot
Blocks: 1938268
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: