|
| 1 | +--- |
| 2 | +'@siemens/ix-angular': major |
| 3 | +'@siemens/ix-react': major |
| 4 | +'@siemens/ix': major |
| 5 | +'@siemens/ix-vue': major |
| 6 | +--- |
| 7 | + |
| 8 | +**Refactor keyboard navigation for dropdown-related components** |
| 9 | + |
| 10 | +Refactors keyboard navigation to align with W3C accessibility patterns for dropdown-related components, significantly improving accessibility and user experience: |
| 11 | + |
| 12 | +## Component Changes |
| 13 | + |
| 14 | +### Date Picker |
| 15 | + |
| 16 | +- Added comprehensive keyboard navigation support: |
| 17 | + - `Home`/`End`: Navigate to first/last day of week |
| 18 | + - `PageUp`/`PageDown`: Navigate to previous/next month |
| 19 | + - `Shift+PageUp`/`Shift+PageDown`: Navigate to previous/next year |
| 20 | + - `ArrowLeft`/`ArrowRight`/`ArrowUp`/`ArrowDown`: Navigate between days |
| 21 | + - `Enter`/`Space`: Select focused day |
| 22 | + - `Escape`: Close picker |
| 23 | +- Replaced manual year/month dropdown with accessible `ix-dropdown-button` components |
| 24 | +- Implemented visual focus mode with `aria-activedescendant` for embedded pickers |
| 25 | +- Added infinite scrolling for year selection with IntersectionObserver |
| 26 | +- Improved ARIA labels: `ariaLabelMonthSelection` and `ariaLabelYearSelection` props |
| 27 | +- Calendar days now have proper `role="button"` and descriptive `aria-label` attributes |
| 28 | + |
| 29 | +### Date Input |
| 30 | + |
| 31 | +- Implemented `aria-activedescendant` pattern for combobox interaction |
| 32 | +- Added keyboard forwarding to embedded date picker |
| 33 | +- `ArrowDown` opens picker and activates keyboard navigation |
| 34 | +- `Escape` closes picker and returns focus to input |
| 35 | +- Focus management improved with `delegatesFocus` shadow DOM option |
| 36 | + |
| 37 | +### Date Dropdown |
| 38 | + |
| 39 | +- Enhanced focus handling with `onFocusout` to close dropdown when focus leaves |
| 40 | +- Auto-focus date picker when opened via keyboard |
| 41 | +- Added `suppressOverflowBehavior` to prevent unwanted repositioning |
| 42 | + |
| 43 | +### Dropdown & Dropdown Button |
| 44 | + |
| 45 | +- New props: `disableFocusHandling`, `disableFocusTrap` |
| 46 | +- New events: `showChange` (preventable), `showChanged` (post-change) |
| 47 | +- Improved focus proxy for dropdown items with proper `role="menuitem"` |
| 48 | +- Better keyboard navigation with arrow keys, Home, End, Enter, Escape |
| 49 | + |
| 50 | +### Breadcrumb |
| 51 | + |
| 52 | +- Complete refactor using `ix-dropdown-button` for previous/next items |
| 53 | +- Added `role="navigation"` and `role="listitem"` for proper semantics |
| 54 | +- Improved ARIA labels (default: "Show previous breadcrumb items") |
| 55 | +- Each breadcrumb item now has `aria-current="page"` for the current page |
| 56 | +- Keyboard navigation now works consistently across all breadcrumb dropdowns |
| 57 | + |
| 58 | +### Avatar |
| 59 | + |
| 60 | +- Implemented focus proxy pattern for dropdown menu items |
| 61 | +- Added `aria-activedescendant` support |
| 62 | +- Button now has `role="combobox"` with proper `aria-controls` and `aria-expanded` |
| 63 | +- Menu items properly labeled with `role="menuitem"` |
| 64 | + |
| 65 | +### Button |
| 66 | + |
| 67 | +- Added `.ix-focused` class for programmatic focus indication |
| 68 | +- Fixed focus-visible styles to work consistently |
| 69 | +- Disabled buttons now have `tabindex="-1"` |
| 70 | + |
| 71 | +### Application Header |
| 72 | + |
| 73 | +- Added `role="banner"` for proper landmark semantics |
| 74 | +- Fixed overflow context menu visibility logic for small viewports |
| 75 | + |
| 76 | +## Breaking Changes |
| 77 | + |
| 78 | +- `ix-breadcrumb-item`: `ariaLabelButton` prop deprecated in favor of direct `aria-label` attribute |
| 79 | +- Date picker month/year selection UI completely redesigned (visual breaking change) |
| 80 | +- Internal structure for all `ix-dropdown` related components are changed |
0 commit comments