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

Issue 291 #2435

Merged
merged 8 commits into from
May 18, 2023
Merged

Issue 291 #2435

merged 8 commits into from
May 18, 2023

Conversation

fstrr
Copy link
Contributor

@fstrr fstrr commented May 17, 2022

closes #291

fstrr added 2 commits May 16, 2022 17:09
Addresses Issue 291. Creates a new HTML technique document for using HTML landmarks to identify regions of a page.
1. removes outdated content (HTML 4.01, XHTML 1.0).
2. updates links to out-of-date URLs, adds https, etc.
3. updates code examples to match HTML100
4. Adds two new Tests and Expected Results
@mbgower
Copy link
Contributor

mbgower commented May 17, 2022

Thanks for this work, @fstrr. It's a significant improvement.

I think it would be an idea to call the HTML equivalent by the name given in the spec ("semantic elements") , or some modification of it like structural semantic elements. I also think it needs to be clearer to distinguish between the two and make it clear that when html exist, the landmarks do not need to be added. They are redundant (and I think the screen readers have matured enough now that we don't need to request they be added?).
Typically, I've seen this discussed as HTML implicit roles versus ARIA explicit roles.

On another topic...

For instance, if a navigation role is used multiple times on a page, each instance may have a unique label specified using aria-labelledby:

This next comment is likely to evolve into a large discussion, but I will note that we have explored whether it is always entirely necessary to label multiple occurrences of the same landmark. For instance, how much weight should we give to hierarchy?
It seems defendable that the two navigation sections in the following situation are distinguishable. Should it really be a failure if the two lack labels?

<header>
<navigation>
<main>
<navigation>

As stated, that is probably best dealt with as a separate issue. i will undertake to create that.

@fstrr
Copy link
Contributor Author

fstrr commented May 17, 2022

hey, @mbgower

Thanks for the feedback.

Would "Using semantic HTML elements to identify regions of a page" be a better document title?

The "For instance, if a navigation role is used multiple times on a page, each instance may have a unique label specified using aria-labelledby content is in the current ARIA11 Technique, so has been there for a good while. That said, the new fourth test procedure does move that away from "may". I think it's probably fair that adding a label is best practice rather than a failure, so taking out that new Test and related Expected Result is probably the way to go.

From memory, Internet Explorer needs roles added to semantic HTML for the landmarks to appear (for example: <main role="main">). Every other browser and screen reader combination supports landmarks. I can add some content saying that ARIA doesn't need to be added where HTML can be used.

@mbgower
Copy link
Contributor

mbgower commented May 17, 2022

Would "Using semantic HTML elements to identify regions of a page" be a better document title?

Yes, I think so @fstrr ! Agree with your other comments to.

fstrr added 2 commits May 17, 2022 21:52
- changed title per @mbgower’s feedback.
- added more HTML-specific content including not neededing to double up on ARIA roles, and more relevant resources
- removed test procedure 4
- improved code examples
@fstrr
Copy link
Contributor Author

fstrr commented May 18, 2022

documents updated per your feedback (and some other things)

@mbgower
Copy link
Contributor

mbgower commented May 18, 2022

@fstrr I have a concern that although you've changed the name of the HMTL5 document, you are using "landmark" primarily in the content. However, I'm not sure anyone would think of the HTML5 equivalents as being "landmarks". I went to change the terms in the article and ran into something of a Pandora's box, in that there does not seem to be consistency of terminology about these elements, even within the HTML5 specification.
Some seem to be called "sectioning" elements, but that term does not cover all of them. The main element for example is categorized as flow content (as are all these things), which is the parent container for sectioning; however it is not listed as a sectioning element. Using "flow" doesn't seem accurate because there are many things that are not equvalents of landmarks which are also in this category.
Another term I've heard is "semantic html", but that is treated much more broadly in the specification (anything with meaning).
I've also heard "structural semantic content" used, but the word "structural" doesn't appear in the specification.
I'm not sure how to proceed or what to recommend!
Here's how I'd written the first paragraph before deciding to just post this comment:

Technologies that support HTML5.

</section>
<section id="description">
  <h2>Description</h2>      <p>The purpose of this technique is to provide programmatic access to sections of a web page. Some HTML semantic elements (or "sections") programmatically identify sections of a page. They serve the same function as ARIA landmarks. Browsers don't expose such tags directly to users, but they they are made available by assistive technology (AT) to users orient themselves to a page and help them navigate easily to various sections of a page. They also can help sighted keyboard-only users navigate to sections of a page using a <a href="https://www.tpgi.com/improving-access-to-landmark-navigation/">browser plugin</a>.</p>

@fstrr fstrr marked this pull request as draft May 18, 2022 14:37
@fstrr
Copy link
Contributor Author

fstrr commented May 18, 2022

Moved this PR to a draft. Will continue to work on this to clarify it. I'm trying to avoid the word "section" where possible to hopefully avoid confusion with the section element and also "sectioning content" which, as you point out, doesn't help us here.

Also, as HTML is a living standard and version-less, I'm just referring to it as HTML instead of HTML5.

(As a side note, I'd like to clear up all the outdated references to HTML and XHTML in the files at some point.)

@fstrr
Copy link
Contributor Author

fstrr commented May 18, 2022

Does this ARIA Practices 1.1 ARIA Landmarks Example help?

"It is important to understand that many HTML5 sectioning (e.g. main,nav, aside ...) elements by default define ARIA landmarks."

@mbgower
Copy link
Contributor

mbgower commented May 18, 2022

"It is important to understand that many HTML5 sectioning (e.g. main,nav, aside ...) elements by default define ARIA landmarks."

It depends how technical we want to get. I am not the best person to nail this down, but my undersatnding is as follows... What aria landmarks do is better described as creating an explicit landmark role for the element, whereas the html5 sectioning element creates an implicit role. Maybe by that token we can say that the html sectioning elements create implicit landmark roles? @scottaohara may be able to give us the best suggested wording.

Oh, sorry! I just realized you were quoting from the APG there!! If they're using that terminology, then I guess we can borrow from it.

@fstrr
Copy link
Contributor Author

fstrr commented May 19, 2022

There's also H97, which relates to this.

That document also needs a re-write to fix the horizontal scrolling of code examples, multiple typos, and an example that seems redundant (slightly surprised that page got approved). I'm working on that.

Copy link
Member

@michael-n-cooper michael-n-cooper left a comment

Choose a reason for hiding this comment

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

Looks good overall. A link to the new technique will need to be added to the appropriate understanding files.

1. marked up code as `code`.
2. removed some repetitious content
3. added more descriptive content to examples.
4. fixed some typos.
@alastc alastc marked this pull request as ready for review May 18, 2023 11:40
@alastc alastc merged commit a6463f3 into main May 18, 2023
1 check passed
@alastc alastc deleted the issue-291 branch May 18, 2023 11:41
@alastc
Copy link
Contributor

alastc commented May 18, 2023

Approved: https://www.w3.org/2023/05/16-ag-minutes#item12

@michael-n-cooper - I updated the links in info & relationships to be relative (they were hard-coded to wcag21). I'll check when it is published, but hopefully that works...

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

Successfully merging this pull request may close these issues.

ARIA11 should reference role="region", and not role="application"
4 participants