-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Global Styles: add accessible label to Back button #35325
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
Conversation
…ng to previous screen
|
Size Change: +48 B (0%) Total Size: 1.07 MB
ℹ️ View Unchanged
|
packages/edit-site/src/components/global-styles/navigation-button.js
Outdated
Show resolved
Hide resolved
| <Item onClick={ () => navigator.push( path, { isBack } ) } { ...props }> | ||
| <Item | ||
| onClick={ () => navigator.push( path, { isBack } ) } | ||
| aria-label={ labelProp ?? defaultLabel } |
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.
Should this be label prop like the Button component. I also wonder why it's not taking the "content" as a label like it's supposed to do by default for buttons.
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.
Should this be label prop like the Button component.
The Item component renders a vanilla HTML button (and not a WordPress Button — sorry if I caused any confusion in a previous comment where I stated the opposite).
I also wonder why it's not taking the "content" as a label like it's supposed to do by default for buttons.
I believe it is, but in the case of the back buttons in the Global Styles sidebar, these buttons only have an icon as their content (no human-readable text)
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.
Got it Thanks, should we use a label prop to align with Button or keep the raw aria-label? I think it's a bit mixed right now in the different components we have and not sure what's the best path forward (maybe a small preference for label in components where it's a generic use-case for compatibility with mobile).
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 agree that it would be nice to have a less mixed approach to how we pass and name props related to labels.
Given the fact that Item renders a HTML button, at the moment we have to pass the aria-label prop to Item (since label is not a standard HTML attribute).
Maybe a way to improve the situation would be to rename the label prop on the NavigationButton component to aria-label? I could also remove the changes from the NavigationButton and pass the aria-label attribute directly from the ScreenHeader component:
diff --git a/packages/edit-site/src/components/global-styles/header.js b/packages/edit-site/src/components/global-styles/header.js
index 1ddd562aa2..1496bb440c 100644
--- a/packages/edit-site/src/components/global-styles/header.js
+++ b/packages/edit-site/src/components/global-styles/header.js
@@ -31,6 +31,7 @@ function ScreenHeader( { back, title, description } ) {
}
size="small"
isBack
+ aria-label={ __( 'Navigate to the previous screen' ) }
/>
</View>
<Spacer>Separately from this PR, we could consider rendering a WordPress Button instead of a HTML button inside Item, which could help to make our APIs a bit more coherent
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 could also remove the changes from the NavigationButton and pass the aria-label attribute directly from the ScreenHeader component
I went ahead and applied that suggested change in a528e22 (#35325) — which greatly simplifies the code changes in this PR
Description
Fixes #35291
Pass an
aria-labelprop to the back button inScreenHeadersaying'Navigate to the previous view'How has this been tested?
npm run distclean && npm ci && npm run wp-env start && npm run devlocalhost:8888/wp-admin, active theTT1-blockstheme and open the Site EditorScreenshots
Types of changes
Checklist:
*.native.jsfiles for terms that need renaming or removal).