w3c / aria

Accessible Rich Internet Applications (WAI-ARIA)
https://w3c.github.io/aria/
Other
654 stars 125 forks source link

dpub-noteref might be better captured as a rel #96

Closed darobin closed 7 years ago

darobin commented 9 years ago

The dpub-noteref is basically typing a link. It so happens that there is an attribute for that: rel. It is worth taking the time to think about whether rel=footnote would not be a better option. It has been proposed before; I am not aware of strong opposition, I think it hasn't happened mostly due to relatively low interest.

TzviyaSiegman commented 9 years ago

This is under discussion. Please see https://lists.w3.org/Archives/Public/public-dpub-aria/2015Oct/0012.html.

richschwer commented 9 years ago

Have you considered telling George Kerscher that the rel information is not exposed to a screen reader? So, he would know that there would be a link but not that it linked to a footnote.

LJWatson commented 9 years ago

@richschwer

This feels like reinventing the wheel. Each of the following would do the same thing (albeit to be used in different ways):

<a href="#footnote" rel="footnote">Footnote</a>
<a href="#footnote" role="dpub-noteref">Footnote</a>
<a href="#footnote" aria-destination="footnote">Footnote</a>

All of these links would be exposed in the same way at present because none of the attributes/attribute values (except href) is recognised in the accessibility layer.

As @darobin suggests, it's worth considering rel further. It is already recognised by browsers, so a piece of the implementation puzzle is already in place. It has a low barrier to entry, it should be possible to introduce it to SVG as a known quantity, and tokens can be used with a dot or hyphen notation to distinguish them from other rel values.

halindrome commented 9 years ago

I would also note that @rel is recognized by RDFa and used to create triples. So it's use is common for people who are trying to be search-engine friendly already.

On Wed, Oct 14, 2015 at 5:26 PM, Léonie Watson notifications@github.com wrote:

@richschwer https://github.com/richschwer

This feels like reinventing the wheel. Each of the following would do the same thing (albeit to be used in different ways):

Footnote Footnote Footnote

All of these links would be exposed in the same way at present because none of the attributes/attribute values (except href) is recognised in the accessibility layer.

As @darobin https://github.com/darobin suggests, it's worth considering rel further. It is already recognised by browsers, so a piece of the implementation puzzle is already in place. It has a low barrier to entry, it should be possible to introduce it to SVG as a known quantity, and tokens can be used with a dot or hyphen notation to distinguish them from other rel values.

— Reply to this email directly or view it on GitHub https://github.com/w3c/aria/issues/96#issuecomment-148220868.

Shane McCarron halindrome@gmail.com

richschwer commented 9 years ago

RDFa does not use ARIA roles?

richschwer commented 9 years ago

I would also point out that rel is a single value and it will not take state data like ARIA. So, they are not the same. I look at @rel values and it looks like an enormous hodge of meta data: http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions

I would not be jazzed about sending that mountain of values over the wall to ATs: http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions

iherman commented 9 years ago

On 15 Oct 2015, at 17:13 , Richard Schwerdtfeger notifications@github.com wrote:

RDFa does not use ARIA roles?

No. RDFa has its own set of attributes plus it reuses some HTML attributes (href, img, rel) when it is used with HTML.

There is a separate part of the Role specification that defines a mapping onto RDF, but that is independent of RDFa (although some RDFa processors do implement those as well)

Ivan

— Reply to this email directly or view it on GitHub https://github.com/w3c/aria/issues/96#issuecomment-148417914.


Ivan Herman, W3C Digital Publishing Lead Home: http://www.w3.org/People/Ivan/ mobile: +31-641044153 ORCID ID: http://orcid.org/0000-0003-0782-2704

johnfoliot commented 9 years ago

Leonie offered this as an example:

<a href="#footnote" rel="footnote">Footnote</a>
<a href="#footnote" role="dpub-noteref">Footnote</a>
<a href="#footnote" aria-destination="footnote">Footnote</a>

...however, I think that is slightly inaccurate, as in practice many times a footnote 'link' is done more like this:

Terms and Conditions<a href="#footnote"><sup>[1]</sup></a>

In this case, the screen reader (if indeed we are trying to address a non-sighted user's use-case) would hear "Terms and Conditions [Link: 1]". However, could we not address that lack of clear link text another way?

Terms and Conditions<a href="#footnote" aria-label="Footnote: 1"><sup>[1]</sup></a>

...where the aria-label "over-rides" the link text, and instead what is announced to the reader is "Terms and Conditions [Link: Footnote 1]".

Rich wrote:

I would also point out that rel is a single value and it will not take state data like ARIA.

What state values would aria-destination take? Since (as I understand it) the attribute would already be assigned to a link type, the state of the link could/would be declared elsewhere, either natively or possibly using existing ARIA states: (http://www.w3.org/TR/wai-aria/states_and_properties#attrs_relationships) (http://www.w3.org/TR/wai-aria/roles#link)

I would not be jazzed about sending that mountain of values over the wall to ATs

You don't. The wiki is the roll-up, the @rel values in question are defined elsewhere, and then pointed to in the wiki. See the (admittedly older) DCTERMS.value and openid.value entries in the wiki as an example. You could also narrow the value range with prefixes like that, so for example: dpub.value

Finally, Rich has noted that the values may have to be mapped to the accessibility APIs. As what? Again, if aria-destination is what we are looking at, it strikes me that what you are after is a better (accessible) description of where the link goes to, so that it is more 'useful' to screen readers (as after all, the functionality is already clear - it's a link). We can do that today with existing ARIA constructs, and it is an authoring issue rather than a mapping/new functionality issue.

What am I missing?

johnfoliot commented 9 years ago

Oops, I also forgot to mention this. One of the possible code examples Leonie showed:

<a href="#footnote" role="dpub-noteref">Footnote</a>

Would 'break' if the element in question already had a competing role explicitly assigned to it via @role: while the spec allows for a space separated series of role values, currently only one is 'active' - you cannot concatenate the values (in the same way that you can, in say @headers/@id for table cells). See: Notes on use of multiple ARIA role attribute values - https://www.paciellogroup.com/blog/2015/10/notes-on-use-of-multiple-aria-role-attribute-values/

Not sure if this would be an issue for dpub's needs however, but something like

<div role="link dpub-noteref">foo</div> (likely not the best example, but work with me)

probably wouldn't work (today).

halindrome commented 9 years ago

No. THe W3C Role Attribute Recommendation extends RDFa to also use the Role attribute. But RDFa inherently uses many many attributes including @rel and @rev.

On Thu, Oct 15, 2015 at 10:13 AM, Richard Schwerdtfeger < notifications@github.com> wrote:

RDFa does not use ARIA roles?

— Reply to this email directly or view it on GitHub https://github.com/w3c/aria/issues/96#issuecomment-148417914.

Shane McCarron halindrome@gmail.com

halindrome commented 9 years ago

Actually, @rel is NOT a single value. It is a list of whitespace separate tokens. exactly as @role is. See the definition at http://www.w3.org/TR/rdfa-syntax/#s_syntax

On Thu, Oct 15, 2015 at 10:16 AM, Richard Schwerdtfeger < notifications@github.com> wrote:

I would also point out that rel is a single value and it will not take state data like ARIA. So, they are not the same. I look at @rel https://github.com/rel values and it looks like an enormous hodge of meta data: http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions

I would not be jazzed about sending that mountain of values over the wall to ATs: http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions

— Reply to this email directly or view it on GitHub https://github.com/w3c/aria/issues/96#issuecomment-148418721.

Shane McCarron halindrome@gmail.com

iherman commented 9 years ago

On 16 Oct 2015, at 01:20 , Shane McCarron notifications@github.com wrote:

Actually, @rel is NOT a single value. It is a list of whitespace separate tokens. exactly as @role is. See the definition at http://www.w3.org/TR/rdfa-syntax/#s_syntax

The more authoritative spec for this is probably:

http://www.w3.org/TR/html5/links.html#attr-hyperlink-rel http://www.w3.org/TR/html5/links.html#attr-hyperlink-rel

because the user is not required to use RDFa, but the result is the same: "The attribute's value must be a set of space-separated tokens. "

On Thu, Oct 15, 2015 at 10:16 AM, Richard Schwerdtfeger < notifications@github.com> wrote:

I would also point out that rel is a single value and it will not take state data like ARIA. So, they are not the same. I look at @rel https://github.com/rel values and it looks like an enormous hodge of meta data: http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions

I would not be jazzed about sending that mountain of values over the wall to ATs: http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions

— Reply to this email directly or view it on GitHub https://github.com/w3c/aria/issues/96#issuecomment-148418721.

Shane McCarron halindrome@gmail.com — Reply to this email directly or view it on GitHub https://github.com/w3c/aria/issues/96#issuecomment-148549759.

halindrome commented 9 years ago

On Fri, Oct 16, 2015 at 2:24 AM, Ivan Herman notifications@github.com wrote:

On 16 Oct 2015, at 01:20 , Shane McCarron notifications@github.com wrote:

Actually, @rel is NOT a single value. It is a list of whitespace separate tokens. exactly as @role is. See the definition at http://www.w3.org/TR/rdfa-syntax/#s_syntax

The more authoritative spec for this is probably:

http://www.w3.org/TR/html5/links.html#attr-hyperlink-rel < http://www.w3.org/TR/html5/links.html#attr-hyperlink-rel>

because the user is not required to use RDFa, but the result is the same: "The attribute's value must be a set of space-separated tokens. "

Fair enough.

Shane McCarron halindrome@gmail.com

TzviyaSiegman commented 7 years ago

After much discussion about how @rel is treated by AT and the OM, we concluded that it's best to use *ref role values at this point.

darobin commented 7 years ago

That's good, ref works for me.