-
Notifications
You must be signed in to change notification settings - Fork 125
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
add sectionheader and sectionfooter roles #1931
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
need to remove instances of referring to fieldset
that got copied over accidentally.
@scottaohara wrote:
Seems reasonable. Checking with others before confirming. |
@cookiecrook wrote:
No comments in 24h. AX API proposals okay as is. Thanks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bear with me as I work out my thoughts on this one because I'm not sure where I land -- whether to introduce these new roles or to leave the distinction between landmark header/footer and not-landmark header/footers in html-aam entirely.
Just to be clear, if this PR lands, the corresponding change in core-aam would be that https://w3c.github.io/html-aam/#el-header and https://w3c.github.io/html-aam/#el-footer point to these new roles and say use these mappings?
I guess one reason why we should introduce these roles is because it is a place to document the concept of a "section header" and "section footer" as apposed to the landmark header/banner and landmaker footer/contentinfo. This makes me feel like there should be some very author-specific guidance about this, and makes me realize we aren't tracking changes to MDN with changes in the spec. Should we be tracking MDN changes? Alternatively, it seems almost too basic, but should there be an APG example for this?
Also, where is the current author facing documentation that says a html header
and footer
are considered landmarks in these cases and not in these other cases? I just check mdn and it is not there.
Also, would we want a "screen reader guidance" section as well? Essentially explaining you can expose this information when you feel like it's necessary, as @cookiecrook mentioned in the VoiceOver case?
No AT changes are needed on Mac. This is only an engine change that results in a different role description. Nothing more. On the call today, @scottaohara mentioned the same was true on Windows. |
@spectranaut probably not a bad idea to add a check for has MDN documentation been updated - these docs are often behind the curve with a11y info/updates. header mentions the 'scoped' nature of the header element - lightly, now. footer calls out an old webkit bug in its accessibility section. |
@jnurthen @cookiecrook @spectranaut any other thoughts on this preventing it from merging? got reminded of it when reviewing the (now linked) WPT. re: author guidance on when a header/footer is a section header/footer vs the landmarks. that can be added to MDN, but that's blocked on this change being made. One could argue the info could be more overtly stated with the current reality of how these elements work. But I would rather make one change than two. |
I was suggesting the role name be changed from |
thanks @cookiecrook. for some reason i had a memory of already doing this, but clearly my memory was faulty. i've actually done it now. |
Per our new process, changes to the ARIA spec can't land until there are implementations or implementation commitments, and related changes to the AAMs/Accname, so I think you need to open all those PRs and bugs on browsers. But I just realized we sort of need an intermediary, because we shouldn't open bugs on browsers until we have "consensus" from the working group... we we need a way of keeping track of that some how. I think it used to be that once we had consensus we merged, and that is how we "kept track" of what had consensus. |
yes, there does seem to be something with this revised process that needs working out, as I didn't think it would make sense to file bugs until reviews were completed (and i did the work james requested and i flubbed on actually doing, until yesterday). also, as we've already had a few meetings (triage, then the meeting where i actually babbled on about the proposal - resulting in me doing the work, and THEN we did initial triage of the PR) isn't the fact there were reviewers assigned (and anyone else can also review now) the end point of the consensus process? E.g., once we have approving reviews, then that means there is consensus. If more consensus is needed after that, it seems like the process is overcomplicated, or we aren't doing consensus right. |
Ah good point, @scottaohara -- three reviews = consensus. So, we can open issues on implementations after there are three reviews, and we can merge after there is at least one implementation and implementation commitment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think these sections look good! Very clear description.
Assigning to myself to make tests and issues on browsers. |
This constant has been renamed to `ax::mojom::Role::kSectionFooter`. Chromium change: https://chromium.googlesource.com/chromium/src/+/03a093c456608e8deb9e0c7ce2077f09022ac3f3 commit 03a093c456608e8deb9e0c7ce2077f09022ac3f3 Author: Jocelyn Tran <[email protected]> Date: Fri Aug 16 15:53:13 2024 +0000 [A11y] Rename kHeaderAsNonLandmark and kFooterAsNonLandmark Two new roles are being added to aria: sectionheader and sectionfooter [1]. header scoped to the main element or a sectioning content element will map to sectionheader and footer scoped to the main element or a sectioning content element will map to sectionfooter. There are two existing internal roles, kHeaderAsNonLandmark and kFooterAsNonLandmark, that represent these concepts so only the role name and output strings for the platform APIs have to be updated. [1] w3c/aria#1931 Fixed: 337094897, 358159988, 358192585
This constant has been renamed to `ax::mojom::Role::kSectionFooter`. Chromium change: https://chromium.googlesource.com/chromium/src/+/03a093c456608e8deb9e0c7ce2077f09022ac3f3 commit 03a093c456608e8deb9e0c7ce2077f09022ac3f3 Author: Jocelyn Tran <[email protected]> Date: Fri Aug 16 15:53:13 2024 +0000 [A11y] Rename kHeaderAsNonLandmark and kFooterAsNonLandmark Two new roles are being added to aria: sectionheader and sectionfooter [1]. header scoped to the main element or a sectioning content element will map to sectionheader and footer scoped to the main element or a sectioning content element will map to sectionfooter. There are two existing internal roles, kHeaderAsNonLandmark and kFooterAsNonLandmark, that represent these concepts so only the role name and output strings for the platform APIs have to be updated. [1] w3c/aria#1931 Fixed: 337094897, 358159988, 358192585
This constant has been renamed to `ax::mojom::Role::kSectionFooter`. Chromium change: https://chromium.googlesource.com/chromium/src/+/03a093c456608e8deb9e0c7ce2077f09022ac3f3 commit 03a093c456608e8deb9e0c7ce2077f09022ac3f3 Author: Jocelyn Tran <[email protected]> Date: Fri Aug 16 15:53:13 2024 +0000 [A11y] Rename kHeaderAsNonLandmark and kFooterAsNonLandmark Two new roles are being added to aria: sectionheader and sectionfooter [1]. header scoped to the main element or a sectioning content element will map to sectionheader and footer scoped to the main element or a sectioning content element will map to sectionfooter. There are two existing internal roles, kHeaderAsNonLandmark and kFooterAsNonLandmark, that represent these concepts so only the role name and output strings for the platform APIs have to be updated. [1] w3c/aria#1931 Fixed: 337094897, 358159988, 358192585
This constant has been renamed to `ax::mojom::Role::kSectionFooter`. Chromium change: https://chromium.googlesource.com/chromium/src/+/03a093c456608e8deb9e0c7ce2077f09022ac3f3 commit 03a093c456608e8deb9e0c7ce2077f09022ac3f3 Author: Jocelyn Tran <[email protected]> Date: Fri Aug 16 15:53:13 2024 +0000 [A11y] Rename kHeaderAsNonLandmark and kFooterAsNonLandmark Two new roles are being added to aria: sectionheader and sectionfooter [1]. header scoped to the main element or a sectioning content element will map to sectionheader and footer scoped to the main element or a sectioning content element will map to sectionfooter. There are two existing internal roles, kHeaderAsNonLandmark and kFooterAsNonLandmark, that represent these concepts so only the role name and output strings for the platform APIs have to be updated. [1] w3c/aria#1931 Fixed: 337094897, 358159988, 358192585
This constant has been renamed to `ax::mojom::Role::kSectionFooter`. Chromium change: https://chromium.googlesource.com/chromium/src/+/03a093c456608e8deb9e0c7ce2077f09022ac3f3 commit 03a093c456608e8deb9e0c7ce2077f09022ac3f3 Author: Jocelyn Tran <[email protected]> Date: Fri Aug 16 15:53:13 2024 +0000 [A11y] Rename kHeaderAsNonLandmark and kFooterAsNonLandmark Two new roles are being added to aria: sectionheader and sectionfooter [1]. header scoped to the main element or a sectioning content element will map to sectionheader and footer scoped to the main element or a sectioning content element will map to sectionfooter. There are two existing internal roles, kHeaderAsNonLandmark and kFooterAsNonLandmark, that represent these concepts so only the role name and output strings for the platform APIs have to be updated. [1] w3c/aria#1931 Fixed: 337094897, 358159988, 358192585
This constant has been renamed to `ax::mojom::Role::kSectionFooter`. Chromium change: https://chromium.googlesource.com/chromium/src/+/03a093c456608e8deb9e0c7ce2077f09022ac3f3 commit 03a093c456608e8deb9e0c7ce2077f09022ac3f3 Author: Jocelyn Tran <[email protected]> Date: Fri Aug 16 15:53:13 2024 +0000 [A11y] Rename kHeaderAsNonLandmark and kFooterAsNonLandmark Two new roles are being added to aria: sectionheader and sectionfooter [1]. header scoped to the main element or a sectioning content element will map to sectionheader and footer scoped to the main element or a sectioning content element will map to sectionfooter. There are two existing internal roles, kHeaderAsNonLandmark and kFooterAsNonLandmark, that represent these concepts so only the role name and output strings for the platform APIs have to be updated. [1] w3c/aria#1931 Fixed: 337094897, 358159988, 358192585
This constant has been renamed to `ax::mojom::Role::kSectionFooter`. Chromium change: https://chromium.googlesource.com/chromium/src/+/03a093c456608e8deb9e0c7ce2077f09022ac3f3 commit 03a093c456608e8deb9e0c7ce2077f09022ac3f3 Author: Jocelyn Tran <[email protected]> Date: Fri Aug 16 15:53:13 2024 +0000 [A11y] Rename kHeaderAsNonLandmark and kFooterAsNonLandmark Two new roles are being added to aria: sectionheader and sectionfooter [1]. header scoped to the main element or a sectioning content element will map to sectionheader and footer scoped to the main element or a sectioning content element will map to sectionfooter. There are two existing internal roles, kHeaderAsNonLandmark and kFooterAsNonLandmark, that represent these concepts so only the role name and output strings for the platform APIs have to be updated. [1] w3c/aria#1931 Fixed: 337094897, 358159988, 358192585
This constant has been renamed to `ax::mojom::Role::kSectionFooter`. Chromium change: https://chromium.googlesource.com/chromium/src/+/03a093c456608e8deb9e0c7ce2077f09022ac3f3 commit 03a093c456608e8deb9e0c7ce2077f09022ac3f3 Author: Jocelyn Tran <[email protected]> Date: Fri Aug 16 15:53:13 2024 +0000 [A11y] Rename kHeaderAsNonLandmark and kFooterAsNonLandmark Two new roles are being added to aria: sectionheader and sectionfooter [1]. header scoped to the main element or a sectioning content element will map to sectionheader and footer scoped to the main element or a sectioning content element will map to sectionfooter. There are two existing internal roles, kHeaderAsNonLandmark and kFooterAsNonLandmark, that represent these concepts so only the role name and output strings for the platform APIs have to be updated. [1] w3c/aria#1931 Fixed: 337094897, 358159988, 358192585
This constant has been renamed to `ax::mojom::Role::kSectionFooter`. Chromium change: https://chromium.googlesource.com/chromium/src/+/03a093c456608e8deb9e0c7ce2077f09022ac3f3 commit 03a093c456608e8deb9e0c7ce2077f09022ac3f3 Author: Jocelyn Tran <[email protected]> Date: Fri Aug 16 15:53:13 2024 +0000 [A11y] Rename kHeaderAsNonLandmark and kFooterAsNonLandmark Two new roles are being added to aria: sectionheader and sectionfooter [1]. header scoped to the main element or a sectioning content element will map to sectionheader and footer scoped to the main element or a sectioning content element will map to sectionfooter. There are two existing internal roles, kHeaderAsNonLandmark and kFooterAsNonLandmark, that represent these concepts so only the role name and output strings for the platform APIs have to be updated. [1] w3c/aria#1931 Fixed: 337094897, 358159988, 358192585
This constant has been renamed to `ax::mojom::Role::kSectionFooter`. Chromium change: https://chromium.googlesource.com/chromium/src/+/03a093c456608e8deb9e0c7ce2077f09022ac3f3 commit 03a093c456608e8deb9e0c7ce2077f09022ac3f3 Author: Jocelyn Tran <[email protected]> Date: Fri Aug 16 15:53:13 2024 +0000 [A11y] Rename kHeaderAsNonLandmark and kFooterAsNonLandmark Two new roles are being added to aria: sectionheader and sectionfooter [1]. header scoped to the main element or a sectioning content element will map to sectionheader and footer scoped to the main element or a sectioning content element will map to sectionfooter. There are two existing internal roles, kHeaderAsNonLandmark and kFooterAsNonLandmark, that represent these concepts so only the role name and output strings for the platform APIs have to be updated. [1] w3c/aria#1931 Fixed: 337094897, 358159988, 358192585
This constant has been renamed to `ax::mojom::Role::kSectionFooter`. Chromium change: https://chromium.googlesource.com/chromium/src/+/03a093c456608e8deb9e0c7ce2077f09022ac3f3 commit 03a093c456608e8deb9e0c7ce2077f09022ac3f3 Author: Jocelyn Tran <[email protected]> Date: Fri Aug 16 15:53:13 2024 +0000 [A11y] Rename kHeaderAsNonLandmark and kFooterAsNonLandmark Two new roles are being added to aria: sectionheader and sectionfooter [1]. header scoped to the main element or a sectioning content element will map to sectionheader and footer scoped to the main element or a sectioning content element will map to sectionfooter. There are two existing internal roles, kHeaderAsNonLandmark and kFooterAsNonLandmark, that represent these concepts so only the role name and output strings for the platform APIs have to be updated. [1] w3c/aria#1931 Fixed: 337094897, 358159988, 358192585
This constant has been renamed to `ax::mojom::Role::kSectionFooter`. Chromium change: https://chromium.googlesource.com/chromium/src/+/03a093c456608e8deb9e0c7ce2077f09022ac3f3 commit 03a093c456608e8deb9e0c7ce2077f09022ac3f3 Author: Jocelyn Tran <[email protected]> Date: Fri Aug 16 15:53:13 2024 +0000 [A11y] Rename kHeaderAsNonLandmark and kFooterAsNonLandmark Two new roles are being added to aria: sectionheader and sectionfooter [1]. header scoped to the main element or a sectioning content element will map to sectionheader and footer scoped to the main element or a sectioning content element will map to sectionfooter. There are two existing internal roles, kHeaderAsNonLandmark and kFooterAsNonLandmark, that represent these concepts so only the role name and output strings for the platform APIs have to be updated. [1] w3c/aria#1931 Fixed: 337094897, 358159988, 358192585
This constant has been renamed to `ax::mojom::Role::kSectionFooter`. Chromium change: https://chromium.googlesource.com/chromium/src/+/03a093c456608e8deb9e0c7ce2077f09022ac3f3 commit 03a093c456608e8deb9e0c7ce2077f09022ac3f3 Author: Jocelyn Tran <[email protected]> Date: Fri Aug 16 15:53:13 2024 +0000 [A11y] Rename kHeaderAsNonLandmark and kFooterAsNonLandmark Two new roles are being added to aria: sectionheader and sectionfooter [1]. header scoped to the main element or a sectioning content element will map to sectionheader and footer scoped to the main element or a sectioning content element will map to sectionfooter. There are two existing internal roles, kHeaderAsNonLandmark and kFooterAsNonLandmark, that represent these concepts so only the role name and output strings for the platform APIs have to be updated. [1] w3c/aria#1931 Fixed: 337094897, 358159988, 358192585
This constant has been renamed to `ax::mojom::Role::kSectionFooter`. Chromium change: https://chromium.googlesource.com/chromium/src/+/03a093c456608e8deb9e0c7ce2077f09022ac3f3 commit 03a093c456608e8deb9e0c7ce2077f09022ac3f3 Author: Jocelyn Tran <[email protected]> Date: Fri Aug 16 15:53:13 2024 +0000 [A11y] Rename kHeaderAsNonLandmark and kFooterAsNonLandmark Two new roles are being added to aria: sectionheader and sectionfooter [1]. header scoped to the main element or a sectioning content element will map to sectionheader and footer scoped to the main element or a sectioning content element will map to sectionfooter. There are two existing internal roles, kHeaderAsNonLandmark and kFooterAsNonLandmark, that represent these concepts so only the role name and output strings for the platform APIs have to be updated. [1] w3c/aria#1931 Fixed: 337094897, 358159988, 358192585
confirming that Edge/Chrome (both msaa/ia2 and uia trees) expose the sectionheader and sectionfooter roles. |
@spectranaut since this has been implemented in chromium, and the other browsers have their accepted bugs on them, seems we're good to merge per your last comment? |
SHA: 80753f9 Reason: push, by jnurthen Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
adds proposed header and footer roles to allow authors to identify areas of the page that would fit the more general HTML definition for the elements of the same name (and would not be considered landmark elements).
These would also allow for the respective HTML elements to expose these new roles - essentially 'renamed' group roles - if they are given properties important to accessibility (focusable, named) but are not meeting the conditions to be exposed as banner / contentinfo landmarks. The alternative is to just expose the elements as groups, which is doable, but arguably also overloads the use of the group role.
Closes #1915
Implementation tracking
Preview | Diff