+ Use your keyboard to navigate this MultiSelect: +
++ Selected: {{ selectedFrameworks.map(f => f.name).join(', ') || 'None' }} +
++ These dropdowns have proper ARIA attributes and labels for screen readers: +
+role="combobox" identifies as dropdownaria-haspopup="listbox" indicates popup typearia-expanded shows open/closed statearia-label provides accessible name+ {{ selectedColors.length }} color(s) selected +
++ {{ selectedSizes.length }} size(s) selected +
++ Test focus behavior with multiple form elements: +
++ Close your eyes, use only the keyboard, and try to select multiple options from any dropdown above. + If you can successfully navigate and make selections, the accessibility implementation is working! +
++ Use your keyboard to navigate these SingleSelect dropdowns: +
++ Selected: {{ selectedSort ? sortOptions.find(o => o.value === selectedSort)?.name : 'None' }} +
++ Selected: {{ selectedPriority ? priorityOptions.find(o => o.value === selectedPriority)?.name : 'None' }} +
++ These dropdowns have proper ARIA attributes and labels for screen readers: +
+role="combobox" identifies as dropdownaria-haspopup="listbox" indicates popup typearia-expanded shows open/closed statearia-label provides accessible name+ Current: {{ selectedLanguage ? languageOptions.find(o => o.value === selectedLanguage)?.name : 'None selected' }} +
++ Current: {{ selectedTheme ? themeOptions.find(o => o.value === selectedTheme)?.name : 'No theme selected' }} +
++ Test keyboard navigation through a complete form with SingleSelect components. + Tab order should be logical and all elements should be accessible. +
+{{ JSON.stringify(formData, null, 2) }}
+ + Close your eyes, use only the keyboard, and try to select different options from any dropdown above. + If you can successfully navigate and make selections, the accessibility implementation is working! +
++ These accessibility features are built into the component with minimal performance impact. + The ARIA attributes and keyboard handlers add less than 1KB to the bundle size. +
+