-
Notifications
You must be signed in to change notification settings - Fork 228
Get Accessibility Properties #1960
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -1040,6 +1040,19 @@ <h3>Endpoints</h3> | |
| <td>/session/{<var>session id</var>}/print</td> | ||
| <td><a>Print Page</a></td> | ||
| </tr> | ||
|
|
||
| <tr> | ||
| <td>GET</td> | ||
| <td>/session/{<var>session id</var>}/element/{<var>element id</var>}/accessibilityproperties</td> | ||
| <td><a>Get Accessibility Properties</a></td> | ||
| </tr> | ||
|
|
||
| <tr> | ||
| <td>GET</td> | ||
| <td>/session/{<var>session id</var>}/accessibility/properties/{<var>accessibility id</var>}</td> | ||
| <td><a>Get Accessibility Properties For Accessibility Node</a></td> | ||
| </tr> | ||
|
|
||
| </table> | ||
| </section> <!-- /Endpoints --> | ||
|
|
||
|
|
@@ -1193,6 +1206,14 @@ <h3>Errors</h3> | |
| and cannot be brought into that viewport. | ||
| </tr> | ||
|
|
||
| <tr> | ||
| <td><dfn>no such accessible node</dfn> | ||
| <td>404 | ||
| <td><code>no such accessible node</code> | ||
| <td>An <a>accessibility node</a> could not be located on the page | ||
| using the given search parameters. | ||
| </tr> | ||
|
|
||
| <tr> | ||
| <td><dfn>no such alert</dfn> | ||
| <td>404 | ||
|
|
@@ -1255,6 +1276,14 @@ <h3>Errors</h3> | |
| <td>A new <a>session</a> could not be created. | ||
| </tr> | ||
|
|
||
| <tr> | ||
| <td><dfn>stale accessible node reference</dfn> | ||
| <td>404 | ||
| <td><code>stale accessible node reference</code> | ||
| <td>A <a>command</a> failed because | ||
| the referenced <a>accessible node</a> is no available. | ||
|
spectranaut marked this conversation as resolved.
Outdated
|
||
| </tr> | ||
|
|
||
| <tr> | ||
| <td><dfn>stale element reference</dfn> | ||
| <td>404 | ||
|
|
@@ -6028,6 +6057,43 @@ <h4><dfn>Get Computed Label</dfn></h4> | |
| <li><p>Return <a>success</a> with data <var>label</var>. | ||
| </ol> | ||
| </section> <!-- /Get Element Computed Label --> | ||
|
|
||
| <section> | ||
| <h4><dfn>Get Accessibility Properties</dfn></h4> | ||
|
|
||
| <table class="simple jsoncommand"> | ||
| <tr> | ||
| <th>HTTP Method</th> | ||
| <th>URI Template</th> | ||
| </tr> | ||
| <tr> | ||
| <td>GET</td> | ||
| <td>/session/{<var>session id</var>}/element/{<var>element id</var>}/accessibilityproperties</td> | ||
| </tr> | ||
| </table> | ||
|
|
||
| <p>The <a>remote end steps</a>, given <var>session</var>, <var>URL | ||
| variables</var> and <var>parameters</var> are: | ||
|
|
||
| <ol> | ||
| <li><p>If <var>session</var>'s <a>current browsing context</a> is <a>no longer open</a>, | ||
| return <a>error</a> with <a>error code</a> <a>no such window</a>. | ||
|
|
||
| <li><p><a>Try</a> to <a>handle any user prompts</a> | ||
| with <var>session</var>. | ||
|
|
||
| <li><p>Let <var>element</var> be the result | ||
| of <a>trying</a> to <a>get a known element</a> | ||
| with <var>URL variables</var>["<code>element id</code>"]. | ||
|
|
||
| <li><p>Let <var>accessible</var> be the <a>accessible node</a> that corrosponds to this element in the <a>accessibility tree</a>. | ||
|
spectranaut marked this conversation as resolved.
Outdated
|
||
|
|
||
| <li><p>Let <var>properties</var> be the result of computing the <a>accessibility properties</a> of <var>accessible</var>. | ||
|
|
||
|
|
||
| <li><p>Return <a>success</a> with data <var>properties</var>. | ||
| </ol> | ||
| </section> <!-- /Get Element Accessibility Properties --> | ||
| </section> <!-- /State --> | ||
|
|
||
| <section> | ||
|
|
@@ -11116,6 +11182,70 @@ <h3><dfn>Take Element Screenshot</dfn></h3> | |
| </section> <!-- /Take Element Screenshot --> | ||
| </section> <!-- /Screen capture --> | ||
|
|
||
| <section> | ||
| <h2>Accessibility</h2> | ||
|
|
||
| <p> An <dfn>accessibility ID</dfn> is a string value representing a handle to an <a>accessible node</a> in a specific WebDriver session. | ||
|
|
||
| <p> An <dfn>accessibility node</dfn> is an node in the implementation defined <a>internal accessibility tree</a>. These nodes frequently but not always correlated to DOM elements. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Elsewhere, @spectranaut noted:
I think I'm still missing something here. I don't see how these trees are fundamentally different. From ARIA:
As I see it, all of that applies here. There are some subtle differences between platforms which we need to eliminate here because we're doing platform independent testing, but for the most part, the trees have a similar structure. While some browsers do have an internal concept of ignored nodes, I don't think those are exposed to any platform, though please correct me if I'm wrong. In any case, on the call today, we discussed using a term like "implementation defined platform independent accessibility tree" or similar to clarify this a little. It's still a little wishy-washy, but it's probably the best we can do here for now.
spectranaut marked this conversation as resolved.
Outdated
|
||
|
|
||
| <p> <dfn>Accessibility properties</dfn> is a JSON <a>Object</a> that contains the relevant <a>computed accessibility properties</a> of an <a>accessiblity node</a>, as well as the following properties: | ||
|
|
||
| <dl> | ||
| <dt>"<code>accessibilityId</code>" | ||
| <dd>The <a>accessibility ID</a> of this <a>accessible node</a>. | ||
|
|
||
| <dt>"<code>parent</code>" | ||
| <dd>The <a>accessibility ID</a> of the parent of this <a>accessible node</a> in the <a>accessibility tree</a>, including <a>ignored accessible nodes</a>. | ||
|
|
||
| <dt>"<code>children</code>" | ||
| <dd>A list of <a>accessibility IDs</a> representing the child nodes of this <a>accessible node</a> in the implementation’s <a>internal accessibility tree</a> | ||
| </dl> | ||
|
|
||
| <p> <dfn>Ignored accessible nodes</dfn> are accessible nodes that represent <a>elements which are excluded from the accessibility tree</a>. The <a>accessibility properties</a> of these <a>accessible nodes</a> must only have the keys <va>accessibilityID</var>, <va>parent</var>, <va>children</var> and <va>role</var> set to <code>"none"</code>. | ||
|
spectranaut marked this conversation as resolved.
Outdated
|
||
|
|
||
| <p>To <dfn>get a known accessible node</dfn> given <var>session</var> and <var>reference</var>: | ||
|
|
||
| <ol class="algorithm"> | ||
| <li><p>TO DO: Should we create a parallel to the specification of <a>get a known element</a>? Do we need to make a parallel structure to <a>browsing context group node map</a> and <a>node id map</a>? | ||
|
spectranaut marked this conversation as resolved.
Outdated
|
||
| </ol> | ||
|
|
||
| <section> | ||
| <h3><dfn>Get Accessibility Properties for Accessible Node</dfn></h3> | ||
|
|
||
| <table class="simple jsoncommand"> | ||
| <tr> | ||
| <th>HTTP Method</th> | ||
| <th>URI Template</th> | ||
| </tr> | ||
| <tr> | ||
| <td>GET</td> | ||
| <td>/session/{<var>session id</var>}/accessibiltiy/properties/{<var>accessibility id</var>}/</td> | ||
| </tr> | ||
| </table> | ||
|
|
||
| <p>The <a>remote end steps</a>, given <var>session</var>, <var>URL | ||
| variables</var> and <var>parameters</var> are: | ||
|
|
||
| <ol> | ||
| <li><p>If <var>session</var>'s <a>current browsing context</a> is <a>no longer open</a>, | ||
| return <a>error</a> with <a>error code</a> <a>no such window</a>. | ||
|
|
||
| <li><p><a>Try</a> to <a>handle any user prompts</a> | ||
| with <var>session</var>. | ||
|
|
||
| <li><p>Let <var>node</var> be the result | ||
| of <a>trying</a> to <a>get a known accessible node</a> | ||
| with <var>URL variables</var>["<code>accessibility id</code>"]. | ||
|
|
||
| <li><p>Let <var>properties</var> be the result of computing the <a>accessibility properties</a> of <var>node</var>. | ||
|
|
||
| <li><p>Return <a>success</a> with data <var>properties</var>. | ||
| </ol> | ||
|
|
||
| </section> <!-- /Get Accessibility Properties for Accessible Node --> | ||
| </section> <!-- /Accessibility --> | ||
|
|
||
| <section> | ||
| <h2>Print</h2> | ||
|
|
||
|
|
@@ -11603,6 +11733,7 @@ <h2>Index</h2> | |
| in the Accessible Rich Internet Applications (WAI-ARIA) 1.2 specification: [[wai-aria-1.2]] | ||
| <ul> | ||
| <li><dfn><a href="https://w3c.github.io/aria/#introroles">WAI-ARIA role</a></dfn> | ||
| <li><dfn><a href="https://w3c.github.io/aria/#fixme">Computed acccessible properties</a></dfn> | ||
|
spectranaut marked this conversation as resolved.
Outdated
|
||
| </ul> | ||
|
|
||
| <dd> | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry I missed this in the last pass. I understand that this links to a section under Elements, but looking at it here in the endpoints section, we see this ambiguity between "get accessibility properties" and "get accessibility properties for accessibility node". Would it make sense to rename this to "Get Accessibility Properties for Element"?