Skip to content

fix(Calendar): year prev/next buttons don't lose focus when they become disabled#36343

Open
smhigley wants to merge 2 commits into
microsoft:masterfrom
smhigley:datepicker-disabled-btn
Open

fix(Calendar): year prev/next buttons don't lose focus when they become disabled#36343
smhigley wants to merge 2 commits into
microsoft:masterfrom
smhigley:datepicker-disabled-btn

Conversation

@smhigley

Copy link
Copy Markdown
Contributor

Previous Behavior

The year grid's previous/next buttons used the HTML disabled prop, which means focus was lost when they became disabled. Since they can become disabled as a result of a click event, the better practice is to use aria-disabled + tabindex="-1" (similar to our Button's disabledFocusable state). This is the pattern already used in the CalendarMonth prev/next buttons, so I think the year grid buttons just got forgotten.

New Behavior

They use the disabledFocusable-style disabling, which allows focus to stay on them when they become disabled, but they stay out of the tab order.

Related Issue(s)

@smhigley smhigley requested review from a team and ValentinaKozlova as code owners June 24, 2026 03:29
@github-actions

Copy link
Copy Markdown

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
react-calendar-compat
Calendar Compat
142.388 kB
40.15 kB
142.416 kB
40.16 kB
28 B
10 B
react-datepicker-compat
DatePicker Compat
216.454 kB
63.95 kB
216.482 kB
63.963 kB
28 B
13 B

🤖 This report was generated against bf1159ad21f6cc2cb04986b6d656f19e92bcbe34

@github-actions

Copy link
Copy Markdown

Pull request demo site: URL

@@ -0,0 +1,7 @@
{

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🕵🏾‍♀️ visual changes to review in the Visual Change Report

vr-tests-react-components/CalendarCompat 4 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/CalendarCompat.multiDayView.default.chromium_1.png 479 Changed
vr-tests-react-components/CalendarCompat.multiDayView - High Contrast.default.chromium.png 1188 Changed
vr-tests-react-components/CalendarCompat.multiDayView - RTL.default.chromium.png 476 Changed
vr-tests-react-components/CalendarCompat.multiDayView - Dark Mode.default.chromium.png 1085 Changed
vr-tests-react-components/Menu Converged - submenuIndicator slotted content 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Menu Converged - submenuIndicator slotted content.default.submenus open.chromium.png 413 Changed
vr-tests-react-components/Positioning 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Positioning.Positioning end.updated 2 times.chromium.png 721 Changed
vr-tests-react-components/Positioning.Positioning end.chromium.png 882 Changed
vr-tests-react-components/ProgressBar converged 3 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness - Dark Mode.default.chromium.png 59 Changed
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness - High Contrast.default.chromium.png 50 Changed
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness.default.chromium.png 105 Changed
vr-tests-react-components/TagPicker 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/TagPicker.disabled - Dark Mode.disabled input hover.chromium.png 658 Changed
vr-tests-react-components/TagPicker.disabled - High Contrast.chromium.png 1319 Changed

There were 3 duplicate changes discarded. Check the build logs for more information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants