Skip to content
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 131 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Copy link
Copy Markdown

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"?

</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 -->

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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.
Comment thread
spectranaut marked this conversation as resolved.
Outdated
</tr>

<tr>
<td><dfn>stale element reference</dfn>
<td>404
Expand Down Expand Up @@ -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>&apos;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>.
Comment thread
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>
Expand Down Expand Up @@ -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.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Elsewhere, @spectranaut noted:

because "accessibility tree" alone is defined in ARIA and it basically means the platform API's tree.

I think I'm still missing something here. I don't see how these trees are fundamentally different. From ARIA:

The accessibility tree and the DOM tree are parallel structures. The accessibility tree includes the user interface objects of the user agent and the objects of the document. Accessible objects are created in the accessibility tree for every DOM element that should be exposed to an assistive technology, either because it might fire an accessibility event or because it has a property, relationship or feature which needs to be exposed.

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.

Comment thread
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>.
Comment thread
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>?
Comment thread
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>&apos;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>

Expand Down Expand Up @@ -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>
Comment thread
spectranaut marked this conversation as resolved.
Outdated
</ul>

<dd>
Expand Down
Loading