fix(material/datepicker): avoid showing month label twice in calendar - #33844
PreethiPantangi wants to merge 2 commits into
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
crisbeto
left a comment
There was a problem hiding this comment.
There are several things wrong with this:
- The reason we haven't fixed it ourselves is because it'll require a lot of cleanup internally.
- It's not a good approach, because it leaves an empty row behind.
- We shouldn't introduce a new API for opting out of it. If users wanted to hit this, they could do it with a style override already.
Thanks for the feedback @crisbeto, I traced how label and labelMinRequiredCells flow from MatCalendarBody through the month/year views. Based on that investigation, I’m planning to remove the label and labelMinRequiredCells bindings from MatCalendarBody entirely rather than introducing a showLabel flag. Specifically, I plan to:
I plan to leave the row-0 spacer in place. For offsets >= 3, it will simply be empty instead of containing the label. Based on the existing comments, removing that cell (or adding aria-hidden) appears to affect NVDA's weekday announcements. I also checked mat-multi-year-view, and it doesn't pass either label or labelMinRequiredCells to MatCalendarBody, so the scope appears to be limited to the month/year views.
I'd appreciate your input and feedback. Thank you! |
fix(material/datepicker): avoid showing month label twice in calendar
MatCalendar always renders a header that displays the current month/year. MatMonthView can also render the month label inside the calendar grid when there are enough leading empty cells, causing the month to be displayed and announced twice. The in-grid label can't be made aria-hidden, as this affects NVDA's weekday column count.
Fix
Add a showLabel input to MatMonthView, defaulting to true to preserve the behavior of standalone @docs-private usages. MatCalendar passes false since its header already displays the month/year. I also ran
pnpm approve-api datepicker, updating the golden API files for the datepicker package.Fixes #33763
Testing:
pnpm test datepickerBefore
Date.Picker.Before.mp4
After
Date.Picker.After.mp4