Skip to content

Support for testing additional accessibility properties beyond name and role.#55784

Merged
zcorpan merged 26 commits intoweb-platform-tests:masterfrom
jcsteh:accNode
Mar 20, 2026
Merged

Support for testing additional accessibility properties beyond name and role.#55784
zcorpan merged 26 commits intoweb-platform-tests:masterfrom
jcsteh:accNode

Conversation

@jcsteh
Copy link
Copy Markdown
Contributor

@jcsteh jcsteh commented Oct 31, 2025

  1. Implement get_accessibility_properties_for_accessibility_node and get_accessibility_properties_for_element in wptrunner and TestDriver. For wptrunner, this is currently only supported in executormarionette (Gecko), as there is no implementation yet in any other browser to support.
  2. Add AriaUtils.verifyPropertiesBySelector to test multiple properties using a JSON data-expected attribute on the test elements.
  3. Add AriaUtils.verifyAccessibilitySubtree for simpler tree verification using a simple JS object.
  4. Add simple WPT tests exercising and demonstrating these new methods.

Closes web-platform-tests/interop-accessibility#211

@jcsteh
Copy link
Copy Markdown
Contributor Author

jcsteh commented Oct 31, 2025

There are a number of blocking details to sort out here, but I figured it was worth posting this to get things moving and get some initial feedback.

  1. There is ongoing, unresolved discussion in Tentative testdriver methods rfcs#226 as to whether these TestDriver methods need to be prefixed with tentative_. In short, RFC 127 just says "an existing WebDriver endpoint", which isn't explicit about a formal spec or where it needs to be specified. If an explainer is sufficient, we have Explainer: WebDriver Extension for Accessible Nodes, etc. (potential solution for #197) WICG/aom#203.
  2. In https://github.com/web-platform-tests/rfcs/pull/226/files#r2411669032, @cookiecrook questioned whether we should be removing accessible children/parent ids from this first pass in order to unblock it sooner. I feel this is a fundamental detail we need to sort out because it is a primary goal of the work here. However, pragmatism is important, so I'm happy to go with the consensus here. I guess that would also involve removing verifyAccessibilityTree from this first pass.
  3. executormarionette being the only implementation in this PR is a bit odd. On the other hand, it's difficult to implement (and verify the implementation of) this in executorwebdriver because we don't have a browser implementation yet to use.

@zcorpan
Copy link
Copy Markdown
Member

zcorpan commented Dec 2, 2025

From our last meeting I think we can omit "tentative" prefixes in the API names and instead assert that the methods are only used in tentative tests. I've implemented that in this PR.

Copy link
Copy Markdown
Contributor

@alice alice left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's so good to see this progressing!

@cookiecrook cookiecrook dismissed their stale review December 6, 2025 00:57

substantive feedback in first review has been or is being addressed.

@alice
Copy link
Copy Markdown
Contributor

alice commented Dec 12, 2025

(All my comments should be considered optional suggestions! I think this is fine already.)

…accessibility_node, get_element_accessible_properties -> get_accessibility_properties_for_element, data-expected -> data-expectedproperties.
@jcsteh jcsteh requested a review from cookiecrook February 10, 2026 06:10
@jcsteh jcsteh requested a review from cookiecrook February 26, 2026 23:40
@jcsteh
Copy link
Copy Markdown
Contributor Author

jcsteh commented Feb 26, 2026

@cookiecrook Re-requesting review because your review is still showing as changes requested. let me know if there's anything else you would like adjusted here. Thanks.

Copy link
Copy Markdown
Contributor

@jonathan-j-lee jonathan-j-lee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At @davidsgrogan's request, I've looked over the testdriver bits and they LGTM

Copy link
Copy Markdown
Member

@foolip foolip left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've reviewed the testdriver.js changes only.

jcsteh and others added 2 commits March 2, 2026 16:05
Co-authored-by: Philip Jägenstedt <[email protected]>
Co-authored-by: Philip Jägenstedt <[email protected]>
@cookiecrook
Copy link
Copy Markdown
Contributor

@jcsteh is this ready to merge?

@jcsteh
Copy link
Copy Markdown
Contributor Author

jcsteh commented Mar 12, 2026

@jcsteh is this ready to merge?

Currently, these tests aren't passing on wpt.fyi even in Firefox because I need to get the updates landed in Firefox and then relevant updates need to reach the WPT infra. I was holding off on that until we stabilised the method names, etc., but I'll land those patches now. I think it'd be good to see this passing in Firefox at least before we land the PR in order to show that it actually works, but I'm also happy to land it sooner and file follow-ups if you think that's more effective.

Hopefully, this triggers wpt.fyi to update the PR results so I can see whether the Firefox updates are applying correctly.
@jcsteh
Copy link
Copy Markdown
Contributor Author

jcsteh commented Mar 18, 2026

The tests are now passing on wpt.fyi for Firefox! I don't understand these Azure Pipelines CI failures though. It says that test_list_tests_missing_manifest is failing, but I've just spent quite some time digging through dashboards and logs and I cannot find any useful information about what the actual problem is.

@jcsteh
Copy link
Copy Markdown
Contributor Author

jcsteh commented Mar 20, 2026

I asked @jgraham about this and apparently this Azure Pipelines error can be disregarded.

@zcorpan zcorpan merged commit 6a2f322 into web-platform-tests:master Mar 20, 2026
49 of 50 checks passed
@jcsteh jcsteh deleted the accNode branch March 22, 2026 22:43
@cookiecrook
Copy link
Copy Markdown
Contributor

🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infra testdriver.js wai-aria wg-wai_pf wptrunner The automated test runner, commonly called through ./wpt run

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Tracker: Support for additional accessibility properties beyond name and role

8 participants