Updates AdminTable for keyboard accessibility#18688
Merged
brianjhanson merged 9 commits into6.xfrom Apr 13, 2026
Merged
Conversation
…me on button; add aria-sort attribute to column th in AdminTable
There was a problem hiding this comment.
Pull request overview
This PR improves control panel keyboard/screen-reader accessibility by making sortable table headers operable via native buttons (instead of click-only header cells) and by adding missing ARIA labeling to combobox UI.
Changes:
- Add an accessible table caption + ARIA sort semantics and switch sortable headers to real
<button>controls inAdminTable. - Introduce
ColumnHeaderTitleto wrap sortable header content in a button and provide sort instructions viaaria-describedby. - Add a required
labelprop toInputComboboxand wire it to the toggle button’saria-label; plumb the label throughCraftCombobox.
Reviewed changes
Copilot reviewed 10 out of 12 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| resources/js/pages/SettingsSectionsIndexPage.vue | Passes a table title into AdminTable for screen-reader caption context. |
| resources/js/components/form/InputCombobox.vue | Adds a label prop and uses it for aria-label on the combobox toggle button. |
| resources/js/components/form/CraftCombobox.vue | Makes label required and forwards it to InputCombobox. |
| resources/js/components/AdminTable/ColumnHeaderTitle.vue | New component: renders sortable column headers as a button. |
| resources/js/components/AdminTable/AdminTable.vue | Adds caption/instructions, aria-sort, and button-based sorting. |
| resources/build/SettingsSectionsIndexPage.js | Built output update reflecting the AdminTable prop changes. |
| resources/build/SettingsEmailPage.js | Built output update reflecting combobox prop changes. |
| resources/build/InputCombobox.js | Built output update reflecting the new required label prop + ARIA wiring. |
| resources/build/assets/InputCombobox.css | Built CSS output (scoped hash changes). |
| resources/build/assets/cp.css | Built CSS output update. |
| resources/build/assets/AdminTable.css | Built CSS output for new header button styling + hover/focus state. |
Comments suppressed due to low confidence (1)
resources/js/components/form/InputCombobox.vue:32
labelwas made a required prop, but there are several existingInputComboboxusages in the repo that don't pass it (e.g.resources/js/components/sites/SiteFields.vue:150,202,242,339,resources/js/pages/SettingsSitesIndex.vue:377, andresources/js/composables/useEditableTable.ts:261). As-is, this will cause TypeScript/Vue compile errors. Either update those call sites to pass an appropriate label (preferred for accessibility) or makelabeloptional and provide a safe fallback aria-label for the toggle button when it’s omitted.
const props = withDefaults(
defineProps<{
label: string;
options?: Array<SelectItem>;
modelValue?: string;
requireOptionMatch?: boolean;
transformModelValue?: (newValue: SelectOption | null) => string;
class?: HTMLAttributes['class'];
placeholder?: string;
}>(),
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
brianjhanson
approved these changes
Apr 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Related issues