gov-gui
Version:
Gov UI Component Library Demo ready Build
47 lines (46 loc) • 5.49 kB
JavaScript
// src/utils/a11y-config.ts
export const a11yMap = {
'gov-accordion': { role: 'region', ariaRole: 'region', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'section' },
'gov-alert': { role: 'alert', ariaRole: 'alert', ariaHidden: false, isKeyboardNavigable: false, requiresLabel: true, elementSelector: 'div' },
'gov-avatar': { role: 'img', ariaRole: 'img', ariaHidden: false, isKeyboardNavigable: false, requiresLabel: true, elementSelector: 'img' },
'gov-badge': { role: 'status', ariaRole: 'status', ariaHidden: false, isKeyboardNavigable: false, requiresLabel: false, elementSelector: 'span' },
'gov-box': { ariaHidden: true },
'gov-breadcrumb': { role: 'navigation', ariaRole: 'navigation', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: false, elementSelector: 'nav' },
'gov-button': { role: 'button', ariaRole: 'button', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'button' },
'gov-card': { role: 'group', ariaRole: 'group', ariaHidden: false, isKeyboardNavigable: false, requiresLabel: false, elementSelector: 'div' },
'gov-calendar': { role: 'grid', ariaRole: 'grid', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'table' },
'gov-chart': { role: 'img', ariaRole: 'img', ariaHidden: false, isKeyboardNavigable: false, requiresLabel: true, elementSelector: 'svg' },
'gov-checkbox': { role: 'checkbox', ariaRole: 'checkbox', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'input[type="checkbox"]' },
'gov-chips': { role: 'listbox', ariaRole: 'listbox', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'ul' },
'gov-choice-chips': { role: 'radiogroup', ariaRole: 'radiogroup', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'div' },
'gov-combo-box': { role: 'combobox', ariaRole: 'combobox', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'input' },
'gov-container': { ariaHidden: true },
'gov-date-time-picker': { role: 'group', ariaRole: 'group', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'div' },
'gov-drop': { role: 'menu', ariaRole: 'menu', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'ul' },
'gov-dropdown': { role: 'listbox', ariaRole: 'listbox', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'select' },
'gov-form': { role: 'form', ariaRole: 'form', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'form' },
'gov-icon': { role: 'img', ariaRole: 'img', ariaHidden: false, isKeyboardNavigable: false, requiresLabel: false, elementSelector: 'svg' },
'gov-input': { role: 'textbox', ariaRole: 'textbox', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'input' },
'gov-layout': { ariaHidden: true },
'gov-list': { role: 'list', ariaRole: 'list', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'ul' },
'gov-menubar': { role: 'menubar', ariaRole: 'menubar', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'nav' },
'gov-modal': { role: 'dialog', ariaRole: 'dialog', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'div' },
'gov-pagination': { role: 'navigation', ariaRole: 'navigation', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: false, elementSelector: 'nav' },
'gov-popups': { role: 'dialog', ariaRole: 'dialog', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'div' },
'gov-progress-bar': { role: 'progressbar', ariaRole: 'progressbar', ariaHidden: false, isKeyboardNavigable: false, requiresLabel: true, elementSelector: 'progress' },
'gov-radiobutton': { role: 'radio', ariaRole: 'radio', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'input[type="radio"]' },
'gov-row': { role: 'row', ariaRole: 'row', ariaHidden: false, isKeyboardNavigable: false, requiresLabel: false, elementSelector: 'div' },
'gov-segmented-chips': { role: 'tablist', ariaRole: 'tablist', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'div' },
'gov-sidebar': { role: 'complementary', ariaRole: 'complementary', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: false, elementSelector: 'aside' },
'gov-slider': { role: 'slider', ariaRole: 'slider', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'input[type="range"]' },
'gov-stepper': { role: 'list', ariaRole: 'list', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'ul' },
'gov-switcher': { role: 'switch', ariaRole: 'switch', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'input[type="checkbox"]' },
'gov-table': { role: 'table', ariaRole: 'table', ariaHidden: false, isKeyboardNavigable: true, requiresLabel: true, elementSelector: 'table' },
};
// export abstract class A11yComponent {
// protected a11y: A11yConfig = {};
// protected setA11yConfig(tagName: string) {
// this.a11y = a11yMap[tagName] || {};
// }
// }
//# sourceMappingURL=a11y-config.js.map