-
Notifications
You must be signed in to change notification settings - Fork 16
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
feat: splitButton accessibility improvements #1458
Conversation
🚀 Deployed on https://pr-1458--dhis2-ui.netlify.app |
Passing run #3280 ↗︎
Details:
Review all test suite changes for PR #1458 ↗︎ |
@@ -94,6 +113,8 @@ class SplitButton extends Component { | |||
tabIndex={tabIndex} | |||
className={cx(className, rightButton.className)} | |||
dataTest={`${dataTest}-toggle`} | |||
title="Toggle dropdown" |
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.
use i18n for the labels
expect(getByText('Click me')).toBeInTheDocument() | ||
}) | ||
|
||
it('toggles dropdown when right button is clicked', () => { |
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.
it's left
button, not right
?
it("does not close dropdown 'SpaceBar' key is pressed", async () => { | ||
const { getByTestId } = render( | ||
<SplitButton component={<div>Dropdown Content</div>} /> | ||
) | ||
|
||
const toggleButton = getByTestId('dhis2-uicore-splitbutton-toggle') | ||
fireEvent.click(toggleButton) | ||
expect(getByTestId('dhis2-uicore-splitbutton-menu')).toBeInTheDocument() | ||
|
||
fireEvent.keyDown(document, { key: ' ' }) | ||
|
||
// Use waitFor to wait for the DOM to update | ||
await waitFor(() => { | ||
expect( | ||
getByTestId('dhis2-uicore-splitbutton-menu') | ||
).toBeInTheDocument() | ||
}) | ||
}) |
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.
one of these tests is enough (maybe remvoe the space bar one)
f4c9bb9
to
e1400a3
Compare
# [9.5.0-alpha.1](v9.4.2...v9.5.0-alpha.1) (2024-03-19) ### Features * splitButton accessibility improvements ([#1458](#1458)) ([51a1b14](51a1b14)) * **tooltip:** accessibility improvements for tooltip ([#1463](#1463)) ([f11eabb](f11eabb)) * add aria attributes to loaders ([#1449](#1449)) ([2832584](2832584))
* feat: splitButton accessibility improvements * feat: splitButton accessibility improvements * feat: splitButton accessibility improvements * refactor: apply code review comments (pairing session) --------- Co-authored-by: Mozafar Haider <[email protected]>
# [9.7.0](v9.6.0...v9.7.0) (2024-06-03) ### Bug Fixes * **Tooltip:** add missing tabIndex ([389e61a](389e61a)) ### Features * splitButton accessibility improvements ([#1458](#1458)) ([8370915](8370915)) * **tooltip:** accessibility improvements for tooltip ([#1463](#1463)) ([9afcfdf](9afcfdf)) * add aria attributes to loaders ([#1449](#1449)) ([aaa60fb](aaa60fb)) * add optional aria-label prop to switch component ([bf9927a](bf9927a))
* feat: splitButton accessibility improvements * feat: splitButton accessibility improvements * feat: splitButton accessibility improvements * refactor: apply code review comments (pairing session) --------- Co-authored-by: Mozafar Haider <[email protected]>
* **Tooltip:** add missing tabIndex ([389e61a](389e61a)) * splitButton accessibility improvements ([#1458](#1458)) ([8370915](8370915)) * **tooltip:** accessibility improvements for tooltip ([#1463](#1463)) ([9afcfdf](9afcfdf)) * add aria attributes to loaders ([#1449](#1449)) ([aaa60fb](aaa60fb)) * add optional aria-label prop to switch component ([bf9927a](bf9927a))
# [9.9.0-alpha.1](v9.8.1...v9.9.0-alpha.1) (2024-06-17) ### Features * splitButton accessibility improvements ([#1458](#1458)) ([51a1b14](51a1b14)) * **tooltip:** accessibility improvements for tooltip ([#1463](#1463)) ([f11eabb](f11eabb)) * add aria attributes to loaders ([#1449](#1449)) ([2832584](2832584)) ### Reverts * Revert "feat(selectionBar): accessibility improvements for SelectionBar (#1475)" ([54498fb](54498fb)), closes [#1475](#1475)
# [9.12.0-alpha.1](v9.11.4...v9.12.0-alpha.1) (2024-09-23) ### Bug Fixes * bump multi calendar library version in calendar ([#1566](#1566)) ([d205016](d205016)) * bump multi calendar library version in calendar component ([#1576](#1576)) ([5f2b13d](5f2b13d)) * update yarn.lock after deduping ([5c24b02](5c24b02)) ### Features * add aria attributes to loaders ([#1449](#1449)) ([2832584](2832584)) * memorize calendar container component to improve perfromance ([#1575](#1575)) ([0d00a19](0d00a19)) * merge master into alpha ([7afecf9](7afecf9)) * splitButton accessibility improvements ([#1458](#1458)) ([51a1b14](51a1b14)) * support editable input | min & max dates | dd-mm-yyyy format in CalendarInput ([#1504](#1504)) ([99a78f5](99a78f5)) * use alpha of multi calendar library ([0c6b966](0c6b966)) * verify date input only on blur on calendar input, close calendar popup on blur as well ([d8b0d1c](d8b0d1c)) * **tooltip:** accessibility improvements for tooltip ([#1463](#1463)) ([f11eabb](f11eabb)) ### Reverts * Revert "feat(selectionBar): accessibility improvements for SelectionBar (#1475)" ([54498fb](54498fb)), closes [#1475](#1475)
# [10.0.0](v9.15.0...v10.0.0) (2024-11-21) ### Bug Fixes * update calendar tests for react 18 ([98831a7](98831a7)) * update testing-library for selector-bar ([893024d](893024d)) * **calendar:** fix minor type issues ([#1588](#1588)) ([21e60a6](21e60a6)) * **calendar:** stop extra call to validation when choosing from picker ([#1623](#1623)) ([a1786d5](a1786d5)) * **calendar-input:** trigger onFocus if passed ([#1622](#1622)) ([293505d](293505d)) * bump multi calendar library version in calendar ([#1566](#1566)) ([d205016](d205016)) * bump multi calendar library version in calendar component ([#1576](#1576)) ([5f2b13d](5f2b13d)) * bump multi-calendar library ([#1615](#1615)) ([238de1f](238de1f)) * bump multi-calendar library ([#1618](#1618)) ([769c7ae](769c7ae)) * clear button and arrow alignment issues ([#1609](#1609)) ([ba0b657](ba0b657)) * stories for calendar validation ([#1616](#1616)) ([c00a2d6](c00a2d6)) * update multi-calendar library ([6aa01cc](6aa01cc)) * update yarn.lock after deduping ([5c24b02](5c24b02)) ### Features * add aria attributes to loaders ([#1449](#1449)) ([2832584](2832584)) * calendar input to work with react final form ([827c3f8](827c3f8)) * memorize calendar container component to improve perfromance ([#1575](#1575)) ([0d00a19](0d00a19)) * merge branch master into branch ([0577074](0577074)) * merge master into alpha ([7afecf9](7afecf9)) * splitButton accessibility improvements ([#1458](#1458)) ([51a1b14](51a1b14)) * support editable input | min & max dates | dd-mm-yyyy format in CalendarInput ([#1504](#1504)) ([99a78f5](99a78f5)) * use alpha of multi calendar library ([0c6b966](0c6b966)) * verify date input only on blur on calendar input, close calendar popup on blur as well ([d8b0d1c](d8b0d1c)) * **tooltip:** accessibility improvements for tooltip ([#1463](#1463)) ([f11eabb](f11eabb)) ### Reverts * Revert "feat(selectionBar): accessibility improvements for SelectionBar (#1475)" ([54498fb](54498fb)), closes [#1475](#1475) ### BREAKING CHANGES * multi-calendar hook no longer returns Temporal date * fix: failing test
update accessibility in SplitButton component
Description
Implemented LIBS-566 by updating the SplitButton component to improve accessibility. This includes adding
title
andaria-label
attributes to the toggle button to provide better context for screen readers. Additionally, made the splitButton close when the escape button is closed.Known issues
Checklist
Screenshots
Additional Notes
SplitButton
component to includetitle
andaria-label
attributes for improved accessibility.supporting text