Calendar accessibility fix#2529
Open
git-nandor wants to merge 1 commit intoINSTUI-4989_DateInput2_days_missing_aria-selectedfrom
Open
Calendar accessibility fix#2529git-nandor wants to merge 1 commit intoINSTUI-4989_DateInput2_days_missing_aria-selectedfrom
git-nandor wants to merge 1 commit intoINSTUI-4989_DateInput2_days_missing_aria-selectedfrom
Conversation
|
f821375 to
545f906
Compare
545f906 to
8d0db1b
Compare
ToMESSKa
reviewed
Apr 28, 2026
Comment on lines
103
to
112
| * prop to `small`, `withBorder` and `withBackground` to `false`, and setting | ||
| * `renderIcon` to [IconArrowOpenEnd](icons). | ||
| */ | ||
| renderNextMonthButton?: Renderable | ||
| renderNextMonthButton?: Renderable<{ targetMonthSrLabel: string }> | ||
| /** | ||
| * A button to render in the navigation header. The recommendation is to | ||
| * compose it with the [IconButton](Button) component by setting the `size` | ||
| * prop to `small`, `withBorder` and `withBackground` to `false`, and setting | ||
| * `renderIcon` to [IconArrowOpenStart](icons). | ||
| */ |
Contributor
There was a problem hiding this comment.
Can you please update the prop descriptions here too like in v2?
ToMESSKa
requested changes
Apr 28, 2026
Contributor
ToMESSKa
left a comment
There was a problem hiding this comment.
Really nice job. See my comment.
…eader, descriptive nav button labels with target month, aria-modal on focused dialogs
8d0db1b to
2ac9f89
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
INSTUI-5009
INSTUI-5010
INSTUI-5014
Improve date picker calendar accessibility
Changes
Add aria-live="polite" aria-atomic="true" to the month/year header in
Calendar v1 and v2. Previously the container was a
<span>wrapping<div>children (invalid HTML), causing screen readers to lose track of the live
region subtree and skip announcements on month navigation. Changed to
<div>.Add target month name to navigation button screen reader labels in Calendar
v1 and v2. Default buttons now announce e.g. "Previous month, November 2023"
instead of the generic "Previous month".
Extend renderPrevMonthButton/renderNextMonthButton prop type from Renderable
to
Renderable<{ targetMonthSrLabel: string }>in Calendar v1 and v2. Whenpassed as a function, the render prop receives the pre-formatted target month
label so consumers can build descriptive accessible names for custom buttons.
Update DateInput v2 to use function render props for navigation buttons,
appending targetMonthSrLabel to the consumer-provided label string so the
full announcement reads e.g. "Next month, January 2024".
Add aria-modal to Dialog when role="dialog" and shouldContainFocus is true,
scoping the screen reader virtual cursor to the dialog content. Guarded by
shouldContainFocus so non-modal Dialog usages (Tray without containment,
DrawerTray during transitions, etc.) are unaffected.
Test plan
Open a DateInput date picker with VoiceOver (macOS) or NVDA (Windows): verify the popover is announced as a dialog with its label (e.g. "Date picker, dialog")
The calendar heading displaying the year and month should use an h2
The last number in the yearPicker always fully visible
With the calendar open, press Tab past the last focusable element and Shift+Tab before the first: verify focus stays inside the picker and does not escape
Open a Modal, Tray, and Popover (non–date picker usage): verify aria-modal appears only when shouldContainFocus is true and does not appear on non-modal usages
Navigate to the next/previous month using the arrow buttons: verify the screen reader announces the new month and year (e.g. "January 2024") via the aria-live region without requiring the user to move focus
Check the previous and next month button accessible names: verify they include the target month (e.g. "Previous month, November 2023" / "Next month, January 2024") and not just the generic label
Pass a function to renderPrevMonthButton / renderNextMonthButton on Calendar v2: verify targetMonthSrLabel is received
Co-Authored-By: 🤖 Claude