-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[Graph] Fix various a11y issues #54097
Conversation
Jenkins, test this. Not sure whether unrelated or not. |
Pinging @elastic/kibana-app (Team:KibanaApp) |
Saw a few more low hanging fruit for a11y fixes here. If you have a chance, could you add these fixes in as well? (If anything's not clear, feel free to reach out! Happy to zoom!)
|
Hi @myasonik , thanks for this! I went through your points and I think I addressed all of them.
This was originally added to have the button text wrap like ordinary text, but with the current labels it's not necessary anymore because the clickable texts are pretty short. I removed it for now. |
@@ -67,6 +67,8 @@ export interface TableListViewProps { | |||
tableListTitle: string; | |||
toastNotifications: ToastsStart; | |||
uiSettings: IUiSettingsClient; | |||
ariaDescribedby?: string; |
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.
TableListView
already takes in quite a few textual inputs (entityName
, entityNamePlural
, tableListTitle
).
Could those be used for this?
If the fact they are translated is an issue, I would still pass in a single input, instead of the two added here (ariaDescribedby
, headingId
)?.
Also, TableListView
is used in only two other places. Would you mind adding this new attribute (if eventually needed) there as well?
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.
The reason I introduced new properties is that in some cases the same id has to be used outside of the component - reusing the entity name seems like too much magic. I'm fine with just using a single property - it takes away some flexibility in using the component, but for the current usage it's not relevant.
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.
Found a couple more things: (sorry this didn't happen in one pass!)
- For the no data sources page, set the callout to have an
h1
(it takes aheading
prop) - Unfortunately, it's not possible to set an ID on that heading so we've got to remove the
aria-labelledby
on themain#graphBasic
tag if we're showing the no data sources page... (If that's not possible, can add a screen reader onlyp
with the right ID so that themain
is still labelled.)
src/plugins/kibana_react/public/table_list_view/table_list_view.tsx
Outdated
Show resolved
Hide resolved
src/plugins/kibana_react/public/table_list_view/table_list_view.tsx
Outdated
Show resolved
Hide resolved
x-pack/legacy/plugins/graph/public/angular/templates/index.html
Outdated
Show resolved
Hide resolved
x-pack/legacy/plugins/graph/public/components/guidance_panel/guidance_panel.tsx
Outdated
Show resolved
Hide resolved
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.
@elastic/kibana-app-arch changes LGTM
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 just added a suggestion. But all the rest LGTM! 🎉
x-pack/legacy/plugins/graph/public/angular/templates/_sidebar.scss
Outdated
Show resolved
Hide resolved
…w.tsx Co-Authored-By: Michail Yasonik <michail@yasonik.com>
…w.tsx Co-Authored-By: Michail Yasonik <michail@yasonik.com>
Co-Authored-By: Michail Yasonik <michail@yasonik.com>
…uidance_panel.tsx Co-Authored-By: Michail Yasonik <michail@yasonik.com>
…scss Co-Authored-By: Elizabet Oliveira <elizabet.oliveira@elastic.co>
@elasticmachine merge upstream |
💚 Build SucceededHistory
To update your PR or re-run it, just comment with: |
* master: (69 commits) [Graph] Fix various a11y issues (elastic#54097) Add ApplicationService app status management (elastic#50223) logs in one time (elastic#54447) Deprecate using `elasticsearch.ssl.certificate` without `elasticsearch.ssl.key` and vice versa (elastic#54392) [Optimizer] Fix a stack overflow with watch_cache when it attempts to delete very large folders. (elastic#54457) Security - Role Mappings UI (elastic#53620) [SIEM] [Detection engine] Permission II (elastic#54292) Allow User to Cleanup Repository from UI (elastic#53047) [Detection engine] Some UX for rule creation (elastic#54471) share specific instances of some ui packages (elastic#54079) [ML] APM modules configs for RUM Javascript and NodeJS (elastic#53792) [APM] Delay rendering invalid license notification (elastic#53924) [Graph] Improve error message on graph requests (elastic#54230) [ILM] Kibana should allow a min_age setting of 0ms in ILM policy phases (elastic#53719) Unit Tests for common/lib (elastic#53736) [Graph] Only show explorable fields (elastic#54101) remove linting rule exception for markdown (elastic#54232) [Monitoring] Fetch shard data more efficiently (elastic#54028) [Maps] Add hiddenLayers option to embeddable map input (elastic#54355) Pass termOrder and hasTermsAgg properties to serializeThresholdWatch function (elastic#54391) ...
* master: (69 commits) [Graph] Fix various a11y issues (elastic#54097) Add ApplicationService app status management (elastic#50223) logs in one time (elastic#54447) Deprecate using `elasticsearch.ssl.certificate` without `elasticsearch.ssl.key` and vice versa (elastic#54392) [Optimizer] Fix a stack overflow with watch_cache when it attempts to delete very large folders. (elastic#54457) Security - Role Mappings UI (elastic#53620) [SIEM] [Detection engine] Permission II (elastic#54292) Allow User to Cleanup Repository from UI (elastic#53047) [Detection engine] Some UX for rule creation (elastic#54471) share specific instances of some ui packages (elastic#54079) [ML] APM modules configs for RUM Javascript and NodeJS (elastic#53792) [APM] Delay rendering invalid license notification (elastic#53924) [Graph] Improve error message on graph requests (elastic#54230) [ILM] Kibana should allow a min_age setting of 0ms in ILM policy phases (elastic#53719) Unit Tests for common/lib (elastic#53736) [Graph] Only show explorable fields (elastic#54101) remove linting rule exception for markdown (elastic#54232) [Monitoring] Fetch shard data more efficiently (elastic#54028) [Maps] Add hiddenLayers option to embeddable map input (elastic#54355) Pass termOrder and hasTermsAgg properties to serializeThresholdWatch function (elastic#54391) ...
…age-offset-floating-tooltip * 'master' of github.com:elastic/kibana: [Maps] refactor isPointsOnly, isLinesOnly, and isPolygonsOnly to make synchronous (elastic#54067) Fix icon path in tutorial introduction (elastic#49684) [State Management] State containers improvements (elastic#54436) Fix floating tools rendering logic (elastic#54505) Handle another double quote special case (elastic#54474) [Home][Tutorial] Add data UI for IBM MQ Filebeat module (elastic#54238) fix(package): upgrade transitive dependency elliptic to v6.5.2 (elastic#54476) [Graph] Fix various a11y issues (elastic#54097) # Conflicts: # src/legacy/core_plugins/console/public/np_ready/application/models/legacy_core_editor/legacy_core_editor.ts
Summary
Fixes #48488
This PR addresses some a11y issues in Graph:
h2
toh1
th
itself, but the checkbox in there has a label. If this is a problem, it has to be fixed in eui.aria-label
as well