Commit 09d63a3
authored
fix: More a11y issues (#20168)
* fix: Name CheckboxList search input and announce no-results to screen readers
* fix: Announce ColorPicker popover and dialog to screen readers
* fix: Expose RichEditor toolbar and toggle-button state to screen readers
* fix: Give KeyValue inputs and action columns accessible names
* fix: Toggle reports correct and always-valid `aria-checked` state
* fix: Convey unread database notification state to screen readers
* fix: Stop toast live region re-announcing the whole stack
* fix: Make database notification header actions keyboard-reachable
* fix: Announce danger notifications assertively to screen readers
* fix: Mark active panel navigation items with `aria-current="page"`
* fix: Add a skip-to-content link to the panel layout
* fix: Name collapsed-sidebar icon-only controls for assistive tech
* fix: Group the theme switcher and announce the active theme
* fix: Include user name in sidebar user-menu trigger accessible name
* fix: Announce unread notification count in the notifications trigger name
* fix: Label panel navigation landmarks for assistive tech
* fix: Mark active item with `aria-current` in dropdown navigation menus
* fix: Expose Icon tooltip text as an accessible name
* fix: Expose FusedGroup as a labelled group and associate its validation error
* fix: Make copyable Text keyboard-operable
* fix: Honor prefers-reduced-motion for framework animations
* fix: Always render an `alt` attribute on the base avatar image
* fix: Expose current page in breadcrumbs and pagination for assistive tech
* fix: Keep modal close button focusable when Escape close is disabled
* fix: Add `aria-current` to active page sub-navigation tab links
* fix: Add visible focus rings to table controls and a boundary to color swatches
* fix: Give inline-editable table column controls an accessible name
* fix: Make ToggleColumn keyboard-operable and focusable
* fix: Add a boundary to infolist color swatches and focus rings to copyable entries
* fix: Render hidden infolist entry labels as screen-reader-only, not display:none
* fix: Give infolist ColorEntry swatches an accessible name
* fix: Mark KeyValueEntry key cells as row headers
* fix: Add `scope="col"` to RepeatableEntry table headers
* fix: Make TextEntry expand/collapse list controls keyboard-operable buttons
* fix: Add a visible focus ring to the clickable stats-overview stat card
* fix: Add an accessible name to the chart widget inline filter select
* refactor: Bind Blade component attributes with a colon instead of interpolation
* fix: Honor prefers-reduced-motion for the notification reposition animation
* fix: Bind aria-current on dropdown nav items so the Blade component compiles
* fix: Dismiss tooltips when Escape is pressed
* fix: Use navigation semantics for page sub-navigation tabs
* fix: Name column-manager reorder handles and associate visibility checkbox labels
* fix: expose heading level on static section and modal heading components
* fix: default an accessible name on the badge delete button
* fix: give icon-only infolist entries a screen-reader text alternative
* fix: announce callout status severity to screen readers
* fix: add `alt()` support to the image entry for accessible names
* fix: give non-text table columns a text alternative
* fix: make the collapsible section disclosure button accessible
* fix: name the collapsible section toggle and correct its disclosure ARIA
* fix: expose the schema section as a named landmark region
* fix: expose disclosure semantics on dropdown triggers
* fix: reword `ColorColumn` swatch comment to drop internal todo reference
* fix: expose query builder rules and groups as named groups
* fix: swap the Blade section disclosure button `aria-label` between expand and collapse states
* fix: sort the `HasLabel` import alphabetically in `IconEntry`
* fix: associate wizard step controls with their panels
* fix: concatenate the section disclosure `x-bind:aria-label` expression instead of echoing inside the attribute
* fix: announce wizard step completion state to screen readers
* fix: harden loading-state accessibility
* fix: use the sanitized color for swatch accessible names
* fix: drop unsupported ARIA attributes from the color picker input
* fix: give table summary footer proper header cell scope semantics
* fix: emit the schema icon tooltip as visually-hidden text instead of an inert unescaped `aria-label`
* fix: expose indeterminate state on select-all checkboxes
* fix: provide text alternatives for chart canvas elements
* fix: expose disclosure state on sidebar toggle buttons
* Update theme.css
* fix: improve accessibility of the link component
* fix: guard icon-button aria-label and disabled-tooltip keyboard focus
* fix: announce dynamic table status changes to screen readers
* fix: announce FileUpload errors and name its download and open links
* fix: announce TagsInput tag additions and removals to screen readers
* fix: associate sidebar group disclosure buttons with their items via aria-controls
* fix: emit a valid aria-pressed value on rich editor toggle tools
* fix: don't apply an assertive role to inline danger notifications
* fix: use the collapsed state for a section's initial collapse-button label
* fix: name wizard step panels when the header is hidden
* fix: expose a user-supplied icon aria-label as a visually-hidden alternative
* fix: make the toggle column switch focusable before Alpine initializes
* fix: give the FileUpload image editor image an empty alt
* fix: rename `ImageColumn::getImageAlt()` to `getAlt()` for sibling parity
* fix: align icon text-alternative type handling between entry and column
* fix: make the text column limited-list expand controls real buttons
* fix: add header scopes and reorder/actions labels to the table repeater
* fix: dismiss only the tooltip on Escape when a dropdown is also open
* fix: add a skip-to-content link to the simple layout
* fix: give the tabs navigation landmark a default accessible name
* fix: mark custom image-path icons as decorative by default
* fix: clamp the heading level components to a valid heading tag
* fix: don't announce the rich editor toolbar until it is keyboard-navigable
* fix: keep text list expand controls as role=button to stay valid inside record links
* fix: bind the toggle column tabindex client-side to stay valid inside record links
* fix: escape sr-only `aria-label` values rendered without attribute escaping
* fix: place plural condition markers at the start of each translation segment
* fix: announce the total result count instead of the current page count
* fix: withhold `role="img"` from copyable color entry swatches to match the column
* fix: key table cell start/end padding off `:first-child`/`:last-child` so summary `<th>` cells do not break `*-of-type` matching
* fix: announce the active tab on button-tag tabs with `aria-current="true"`
* fix: keep sidebar group item ids unique when labels share or lack a slug
* fix: clear stale `TagsInput` live region announcements after a delay
* fix: keep dropdown trigger ARIA wiring in sync across Livewire morphs
* fix: render the tab-reachable modal close button after the content so the focus trap does not autofocus it
* fix: focus the notifications slide-over window on open instead of the `Mark all as read` action
* Update theme.css
* fix: escape the sr-only `aria-label` in the link Blade component
* fix: escape the sr-only `aria-label` in the button Blade component
* fix: omit the section collapse button `aria-controls` when there is no content to control
* test: cover Blade component sr-only `aria-label` escaping and section `aria-controls`
* fix: scope column manager checkbox ids to their table
* fix: insert tags literally into `TagsInput` live region announcements
* fix: keep the tab-reachable modal close button in the sticky header and autofocus the window instead
* test: cover column manager checkbox id scoping across two tables in the browser
* fix: escape aria-labels in the embedded HTML generators and reflect toggle state in aria-checked
The sr-only aria-label escaping fix applied to the link/button Blade views
was not mirrored into the CanGenerate{Button,IconButton,Link}Html traits that
Action renders through, so an Htmlable label could break out of the
attribute (the merges use escape: false). Escape them the same way the Blade
views do, with doubleEncode: false so string labels are not double-encoded,
and give the icon-button Blade view the matching treatment.
Also render the toggle Blade component's initial aria-checked from its state
instead of a hardcoded false, matching the embedded PHP renderers before
Alpine hydrates.
* fix: keep editable column aria-labels safe for Htmlable labels
The editable columns built their aria-label with (string) $this->getLabel(),
which crashes on an Htmlable label that has no __toString() and double-encodes
a HtmlString's entities. Use the Htmlable-aware conversion the rest of the
branch uses, with doubleEncode: false.
* fix: guard tags input live region announcements for published view overrides
announce() wrote to the liveRegion ref and the code called replace() on the
message strings unconditionally, both of which are absent when a user serves a
published pre-change tags-input view, throwing on every tag entry. Bail out of
announce() when the ref is missing and call replace() optionally.
* fix: guard file upload action labels for published view overrides
The download/open anchors set aria-label and title from parameters that are
undefined when a published pre-change file-upload view is served, rendering a
literal "undefined". Only set the attributes when the label is present.
* summary bug
* remove inconsistent labelling1 parent 239cb12 commit 09d63a3
139 files changed
Lines changed: 1609 additions & 153 deletions
File tree
- packages
- forms
- dist/components
- resources
- js/components
- lang/en
- src/Components
- RichEditor
- infolists
- docs
- resources
- css/components
- lang/en
- src/Components
- notifications
- dist
- resources
- js/components
- lang/en
- views
- src
- Livewire
- panels
- dist
- resources
- css/components
- lang/en
- views
- components
- layout
- sidebar
- theme-switcher
- topbar
- livewire
- query-builder
- resources/lang/en
- src
- Constraints
- Forms/Components
- schemas
- docs
- resources
- css/components
- lang/en
- src/Components
- Wizard
- support
- dist
- resources
- css
- components
- js
- components
- lang/en/components
- views/components
- button
- modal
- pagination
- section
- tabs
- src
- View
- Concerns
- tables
- dist
- docs/02-columns
- resources
- css
- columns
- js/components
- lang/en
- views
- components
- column-manager
- summary
- src/Columns
- widgets/resources
- css
- lang/en
- views
- stats-overview-widget
- tests
- resources/views
- pages
- src
- Actions
- Fixtures
- Livewire
- Pages
- Providers
- Forms/Components
- Notifications
- Support
- Tables
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| 38 | + | |
38 | 39 | | |
39 | 40 | | |
40 | 41 | | |
| |||
63 | 64 | | |
64 | 65 | | |
65 | 66 | | |
| 67 | + | |
66 | 68 | | |
67 | 69 | | |
68 | 70 | | |
| |||
605 | 607 | | |
606 | 608 | | |
607 | 609 | | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
608 | 617 | | |
609 | 618 | | |
610 | 619 | | |
| |||
620 | 629 | | |
621 | 630 | | |
622 | 631 | | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
623 | 639 | | |
624 | 640 | | |
625 | 641 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
2 | 7 | | |
3 | 8 | | |
4 | 9 | | |
5 | 10 | | |
6 | 11 | | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
7 | 38 | | |
8 | 39 | | |
9 | 40 | | |
| |||
19 | 50 | | |
20 | 51 | | |
21 | 52 | | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
22 | 56 | | |
23 | 57 | | |
24 | 58 | | |
25 | 59 | | |
26 | 60 | | |
| 61 | + | |
| 62 | + | |
27 | 63 | | |
28 | 64 | | |
29 | 65 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
125 | 131 | | |
126 | 132 | | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
127 | 145 | | |
128 | 146 | | |
129 | 147 | | |
| |||
270 | 288 | | |
271 | 289 | | |
272 | 290 | | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
273 | 303 | | |
274 | 304 | | |
275 | 305 | | |
| |||
341 | 371 | | |
342 | 372 | | |
343 | 373 | | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
344 | 386 | | |
345 | 387 | | |
346 | 388 | | |
| |||
606 | 648 | | |
607 | 649 | | |
608 | 650 | | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
609 | 655 | | |
610 | 656 | | |
611 | 657 | | |
| |||
745 | 791 | | |
746 | 792 | | |
747 | 793 | | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
748 | 798 | | |
749 | 799 | | |
750 | 800 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
528 | 528 | | |
529 | 529 | | |
530 | 530 | | |
| 531 | + | |
531 | 532 | | |
532 | 533 | | |
533 | 534 | | |
| |||
627 | 628 | | |
628 | 629 | | |
629 | 630 | | |
| 631 | + | |
| 632 | + | |
630 | 633 | | |
631 | 634 | | |
632 | 635 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
112 | 115 | | |
113 | 116 | | |
114 | 117 | | |
| |||
158 | 161 | | |
159 | 162 | | |
160 | 163 | | |
| 164 | + | |
161 | 165 | | |
162 | 166 | | |
163 | 167 | | |
| |||
172 | 176 | | |
173 | 177 | | |
174 | 178 | | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
175 | 182 | | |
176 | 183 | | |
177 | 184 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
960 | 960 | | |
961 | 961 | | |
962 | 962 | | |
| 963 | + | |
| 964 | + | |
963 | 965 | | |
964 | 966 | | |
965 | 967 | | |
| |||
990 | 992 | | |
991 | 993 | | |
992 | 994 | | |
| 995 | + | |
993 | 996 | | |
994 | 997 | | |
995 | 998 | | |
| |||
1016 | 1019 | | |
1017 | 1020 | | |
1018 | 1021 | | |
| 1022 | + | |
1019 | 1023 | | |
| 1024 | + | |
1020 | 1025 | | |
1021 | 1026 | | |
1022 | 1027 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
413 | 413 | | |
414 | 414 | | |
415 | 415 | | |
416 | | - | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
417 | 419 | | |
418 | 420 | | |
419 | 421 | | |
| |||
429 | 431 | | |
430 | 432 | | |
431 | 433 | | |
432 | | - | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
433 | 437 | | |
434 | 438 | | |
435 | 439 | | |
| |||
463 | 467 | | |
464 | 468 | | |
465 | 469 | | |
| 470 | + | |
466 | 471 | | |
467 | 472 | | |
468 | 473 | | |
| |||
474 | 479 | | |
475 | 480 | | |
476 | 481 | | |
| 482 | + | |
477 | 483 | | |
478 | 484 | | |
479 | 485 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1951 | 1951 | | |
1952 | 1952 | | |
1953 | 1953 | | |
1954 | | - | |
| 1954 | + | |
| 1955 | + | |
| 1956 | + | |
1955 | 1957 | | |
1956 | 1958 | | |
1957 | 1959 | | |
| |||
1968 | 1970 | | |
1969 | 1971 | | |
1970 | 1972 | | |
1971 | | - | |
| 1973 | + | |
1972 | 1974 | | |
1973 | 1975 | | |
1974 | 1976 | | |
| |||
1980 | 1982 | | |
1981 | 1983 | | |
1982 | 1984 | | |
1983 | | - | |
| 1985 | + | |
| 1986 | + | |
| 1987 | + | |
1984 | 1988 | | |
1985 | 1989 | | |
1986 | 1990 | | |
| |||
0 commit comments