Repository navigation
v0.194.0
Minor Changes
-
#1505
e972167fThanks @tenphi! - Render Menu navigation items as native links, supportingto, path objects, navigation options and nativehrefattributes. Ordinary activation uses the application router once; browser link gestures remain native and disabled destinations stay inert. Preserve the navigation adapter through nested providers and overlays. Submenu triggers open their submenu without invoking item or Menu command callbacks, including pointer and hotkey activation.Support the same destinations and composed item/Menu callbacks in CommandMenu. Cover complete navigation rows with native link targets, including whitespace and padding. Give mixed command/link menus semantic focus targets and separately accessible inline actions while preserving item layout. Correct CommandMenu's searchbox-to-menu active descendant relationship. Use the
focusedmodifier anddata-menuitemfor layout-row selectors that previously relied on LI focus or role adjacency. Selection controls reject and ignore destination props so listbox and combobox options cannot navigate. -
#1509
5acedc3eThanks @tenphi! - A modal, fullscreen or trayDialognow hides the page behind it from screen readers while it is open, so their reading cursor stays in the dialog. Lists, menus, popovers, tooltips and dialogs opened from inside it stay readable, and so do toasts; popover and panel dialogs leave the page readable. Content you portal out of a dialog yourself, withPortalorcreatePortal, is hidden with the page, so render it inside the dialog. In tests, the page behind an open modal is nowaria-hidden: role queries skip it, and with{ hidden: true }they find its elements but not by name, so query them by text orqainstead.
Patch Changes
-
#1509
5acedc3eThanks @tenphi! - ATitleinside aDialogis now theh2the dialog asks for rather than anh1, unless it sets its ownlevel; it looks the same.Menukeeps its id and accessible name on the menu list only, so a trigger'saria-controlsno longer finds a wrapper with the same id.CommandMenunames its search input with itsaria-label, and itsaria-activedescendantnow points at the highlighted command rather than at an id no element has; item ids are unique to each menu. -
#1509
5acedc3eThanks @tenphi! - Link every form input'sdescriptionand error message to its control witharia-describedby, so a screen reader reads them with the field instead of announcing it invalid without saying why.aria-labelalone now names the inputs ofComboBoxandFilterListBox, andFileInput,TextInputMapperandCheckboxGroup;CheckboxGroup'sgrouprole, name and description move from the field wrapper to the element around its checkboxes, sofieldPropsreach the wrapper again;ComboBox,FilterListBox,ListBoxandColorSwatchGroupmark an invalid fieldaria-invalid, which a screen reader announces; andPicker,FilterPickerandColorPickeracceptaria-describedby. The required asterisk and the check marks ofCheckboxandListBoxare hidden from screen readers rather than read as unnamed graphics; withincludeNecessityIndicatorInAccessibilityName, the asterisk is read as "(required)". The two calendar buttons ofDateRangeSeparatedPickerare named for the start and end date, where both were "Calendar". -
#1509
5acedc3eThanks @tenphi! - Make aSkeletonone "Content is loading" region rather than one per bar, and hide the placeholders inside it, and in a table's loading rows, from screen readers. A standalonePlaceholderis still that region, and is no longer an emptyaria-liveregion.ResultandBannerhide their status icons from screen readers rather than letting them be read as unnamed graphics. -
#1508
d91cd10dThanks @tenphi! - Reduce wide ItemTable and DataTable horizontal scrolling work by reusing the mounted column buffer between refills. Keep the existing ahead coverage, tooltips, headers and custom-cell behavior, release extra buffer cells when scrolling settles or vertical movement starts, and skip range tracking when every column is already retained. -
#1509
5acedc3eThanks @tenphi! - Translate the accessible names components set themselves, which were English in every language:ButtonSplit's menu button,CommandMenu's list and loading indicator, the dialog, value input, palette and color-space tabs ofColorPickerandColorInput,ColorSwatchGroup's default and custom-color names,HotKeys(and the "or" between combinations), the resize handles ofLayout.PanelandLayout.Pane,Tree's default name andTextInputMapper's add button. English text is unchanged.