Skip to content
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

adjust banner and contentinfo roles mapping on IA2 #19

Open
asurkov opened this issue Aug 1, 2018 · 6 comments
Open

adjust banner and contentinfo roles mapping on IA2 #19

asurkov opened this issue Aug 1, 2018 · 6 comments
Milestone

Comments

@asurkov
Copy link

asurkov commented Aug 1, 2018

IA2 provides specific roles for banner and contentinfo role, i.e. IA2_ROLE_HEADER and IA2_ROLE_FOOTER correspondingly, which should be used instead more generic IA2_ROLE_LANDMARK.

See issue w3c/html-aam#133 for details.

@joanmarie
Copy link
Contributor

Sanity check: If this change were made, wouldn't ATs have to do more work to distinguish landmarky headers and footers from non-landmarky ones?

banner and contentinfo are landmark roles and thus should be included in things like the list of landmarks. My understanding (which may be wrong) is that header and footer should be treated as landmarks when scoped to the body element, but should NOT be treated as landmarks when scoped to the main element. If that is indeed the case, using IA2_ROLE_HEADER and IA2_ROLE_FOOTER for headers and footers which should not be treated as landmarks, and IA2_ROLE_LANDMARK for headers and footers which should be treated as landmarks, seems like an easy way to make it possible for ATs to do the right thing.

That said, please explain what I'm missing. :) Thanks!

@asurkov
Copy link
Author

asurkov commented Aug 1, 2018

The point is IA2 HEADER/FOOTER roles are not just for HTML header/footer tags, but rather for HTML header/footer elements, which are headers/footers for the document. Thus if HTML:header/footer are not scoped by the body element, then they are not treated as banner/contentinfo landmarks, and thus won't have FOOTER/HEADER roles.

Just IA2 unlike ATK has move specialized roles for footer/header.

@aleventhal is it correct description?

@aleventhal
Copy link
Contributor

Said another way, IA2 HEADER/FOOTER won't be used unless it's to be treated as a landmark (uses ARIA role or HTML tag scoped to body).

@joanmarie
Copy link
Contributor

Said another way, IA2 HEADER/FOOTER won't be used unless it's to be treated as a landmark (uses ARIA role or HTML tag scoped to body).

I wonder if this might lead to some confusion. For instance, are the header and footer areas of a Word/Writer document exposed using the platform header and footer roles? I think they are in Linux. If they are in Windows, then won't we have IA2 HEADER/FOOTER being used to mean different things depending on the type of document being read?

@jnurthen jnurthen added this to the 1.2 milestone Aug 16, 2018
@carmacleod
Copy link
Contributor

Just trying to understand this issue, but I'm having trouble finding the latest platform API docs for ATK and IA2.

@joanmarie Where can I find the latest doc for ATK?
The links in the CORE-AAM intro and CORE-AAM biblio for ATK only contain a few PNGs:

Anyhow, looking at ATK 2.28 (the most recent version I can find that actually contains doc), I see:

  • ATK_ROLE_HEADER - An object that serves as a document header. Since : ATK-1.1.1
  • ATK_ROLE_FOOTER - An object that serves as a document footer. Since : ATK-1.1.1
  • ATK_ROLE_LANDMARK - A region of a web page intended as a navigational landmark. This is designed to allow Assistive Technologies to provide quick navigation among key regions within a document. Since : ATK-2.12

The doc for ATK_ROLE_HEADER/ATK_ROLE_FOOTER doesn't mention landmarks.

So I think the current CORE-AAM mappings for ATK banner and contentinfo are good:

ARIA Role ATK Mapping
banner Role: ROLE_LANDMARK, Object Attribute: xml-roles:banner
contentinfo Role: ROLE_LANDMARK, Object Attribute: xml-roles:contentinfo

@asurkov or @aleventhal Where can I find the latest IA2 doc? The links in CORE-AAM and the CORE-AAM biblio links for IA2 are broken, and the one working link in CORE-AAM points to a wiki that points to IA2 API doc from 2013. Even if I look at the IDL files, which say they were modified in 2018, the copyright date in AccessibleRole.idl only says 2013. IA2_ROLE_LANDMARK was defined in Feb of 2016, according to this mailing list thread.

Anyhow, looking at the 2013 doc for the IA2Role enum, I see:

  • IA2_ROLE_HEADER - Header of a document page. Also refer to IA2_ROLE_FOOTER.
  • IA2_ROLE_FOOTER - Footer of a document page. Also refer to IA2_ROLE_HEADER.
  • I can't find any doc for IA2_ROLE_LANDMARK, but I'm going to guess that if it exists, it's about the same as the ATK doc for ATK_ROLE_LANDMARK.

The doc for IA2_ROLE_HEADER and IA2_ROLE_FOOTER doesn't mention landmarks, either.

So I think the current CORE-AAM mappings for IA2 banner and contentinfo are also good:

ARIA Role IA2 Mapping
banner Role: IA2_ROLE_LANDMARK, Object Attribute: xml-roles:banner
contentinfo Role: IA2_ROLE_LANDMARK, Object Attribute: xml-roles:contentinfo

I think @joanmarie said it best in the email thread:

... the justification is the desire to keep our completely different platforms as aligned as possible.

and @jcsteh replied:

That's a fair justification.

So I think this issue can be closed?

@jcsteh
Copy link

jcsteh commented Apr 29, 2021

Aside from anything else, changing this now would be a backwards compat break. For example, NVDA will ignore a landmark which doesn't have IA2_ROLE_LANDMARK. In addition, other issues have been raised about potential confusion concerning different usage in word processing apps, as well as alignment with ATK. I'd recommend this be closed and the current mappings left alone.

@asurkov or @aleventhal Where can I find the latest IA2 doc?

The generated documentation for the latest spec isn't available anywhere online :(, but you can see the idls on GitHub.

* I can't find any doc for IA2_ROLE_LANDMARK,

https://github.com/linuxa11y/iaccessible2/blob/master/api/AccessibleRole.idl#L295

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants