Open Jym77 opened 2 months ago
@carlosapaduarte check if there is an "universal" objective of sentence
It's worth noting that AT/UA support can be rather inconsistent for the situation pointed out by @Jym77.
For instance, when using VO + Chrome, pressing VO+S to announce the sentence results in it reading "about bar" regardless of whether it's the first or second "read more."
However, when using VO + Safari, pressing VO+S correctly reads the sentence and its context.
CG decision (April 25th): make more test of AT/UA, then if the problem is generic, open issue with WCAG.
@Jym77,
I've created test cases and the results are provided below. Here's the rundown of the tests:
<h2>Example 1</h2>
<div>
<p>
<a href="foo.html">Read more</a> about foo.
<a href="bar.html">Read more</a> about bar.
</p>
</div>
<h2>Example 2</h2>
<div>
<p>
<span><a href="foo.html">Read more</a> about foo.</span>
<span><a href="bar.html">Read more</a> about bar.</span>
</p>
</div>
<h2>Example 3</h2>
<div>
<div><a href="foo.html">Read more</a> about foo.</div>
<div><a href="bar.html">Read more</a> about bar.</div>
</div>
<h2>Example 4</h2>
<div>
<a href="foo.html">Read more</a> about foo.
<a href="bar.html">Read more</a> about bar.
</div>
<h2>Example 5</h2>
<div>
<span role="paragraph"><a href="foo.html">Read more</a> about foo.</span>
<span role="paragraph"><a href="bar.html">Read more</a> about bar.</span>
</div>
<h2>Example 6</h2>
<div>
<p>
<a href="foo.html">Read more</a> about foo, <a href="bar.html">read more</a> about bar.
</p>
</div>
<h2>Example 7</h2>
<div>
<p>
<a href="foo.html">Read more</a> about foo (<a href="bar.html">read more</a> about bar).
</p>
</div>
Example 1 | Example 2 | Example 3 | Example 4 | Example 5 | Example 6 | Example 7 | |
---|---|---|---|---|---|---|---|
VO + Chrome (paragraph - VO+P) | “Read more” | “Read more” | “Read more” | “Read more” | “Read more” | “Read more” | “Read more” |
VO + Chrome (sentence - VO+S) | “Read more” | “Read more” | “Read more” | “Read more” | “Read more” | “Read more” | “Read more” |
VO + Safari (paragraph - VO+P) | Read more about foo. Read more about bar. | Read more about foo. Read more about bar. | [“Read more about foo.”, “Read more about bar.”] | Read more about foo. Read more about bar. | Read more about foo. Read more about bar. | Read more about foo. Read more about bar. | Read more about foo (read more about bar). |
VO + Safari (sentence - VO+S) | [“Read more about foo.”, “Read more about bar.”] | [“Read more about foo. R”, “ut foo. R”] | [“Read more about foo.”, “Read more about bar.”] | [“Read more about foo.”, “Read more about bar.”] | [“Read more about foo. R”, “foo. R”] | Read more about foo. Read more about bar. | Read more about foo (read more about bar). |
NVDA + Firefox (Read current line) | “Link read more about foo. Link read more about bar” | “Link read more about foo. Link read more about bar” | “Link read more about foo. ” | “Link read more about foo. Link read more about bar” | “Link read more about foo. Link read more about bar” | “Link read more about foo, link read more about bar” | “Link read more about foo (link read more about bar)” |
NVDA + Chrome (Read current line) | “Link read more about foo. Link read more about bar” | “Link read more about foo. Link read more about bar” | “Link read more about foo. ” | “Link read more about foo. Link read more about bar” | “Link read more about foo. Link read more about bar” | “Link read more about foo, link read more about bar” | “Link read more about foo (link read more about bar)” |
NVDA + Edge (Read current line) | “Link read more about foo. Link read more about bar” | “Link read more about foo. Link read more about bar” | “Link read more about foo. ” | “Link read more about foo. Link read more about bar” | “Link read more about foo. Link read more about bar” | “Link read more about foo, link read more about bar” | “Link read more about foo (link read more about bar)” |
JAWS + Chrome (Say current line) | “Link read more” | “Link read more” | “Link read more” | “Link read more” | “Link read more” | “Link read more” | “Link read more” |
JAWS + Chrome (Say current sentence) | “Link read more” | “Link read more” | “Link read more” | “Link read more” | “Link read more” | “Link read more” | “Link read more” |
JAWS + Chrome (Say current paragraph) | “Link read more about foo. Link read more about bar” | “Link read more about foo. Link read more about bar” | “Link read more about foo.” | “Link read more about foo. Link read more about bar” | “Link read more about foo.” | “Link read more about foo, link read more about bar” | “Link read more about foo (link read more about bar)” |
JAWS + Edge (Say current line) | “Link read more” | “Link read more” | “Link read more” | “Link read more” | “Link read more” | “Link read more” | “Link read more” |
JAWS + Edge (Say current sentence) | “Link read more” | “Link read more” | “Link read more” | “Link read more” | “Link read more” | “Link read more” | “Link read more” |
JAWS + Edge (Say current paragraph) | “Link read more about foo. Link read more about bar” | “Link read more about foo. Link read more about bar” | “Link read more about foo.” | “Link read more about foo. Link read more about bar” | “Link read more about foo.” | “Link read more about foo, link read more about bar” | “Link read more about foo (link read more about bar)” |
It appears that sentence support, which seems to be lacking in NVDA, isn't consistently reliable even when available.
I plan to bring up this issue on the WCAG GitHub in the next few days.
The definition of Programmatically Determined Link Context includes all the containing paragraph (or block ancestor). This means that links inside the same paragraph cannot be disambiguated by their sentence, which is part of the note in the WCAG definition of programmatically determined link context:
So,
fails the rule, but arguably passes the SC (not the best practice, but still correct) because the sentence provides the context.