The computed name exposed to assistive technologies for an element, derived from label, aria-label, aria-labelledby, or text content.
An accessible name is the text that assistive technologies use to identify and describe interface elements to users. It's the bridge between your visual design and the auditory or tactile experience of screen reader and braille display users.
According to the WebAIM Screen Reader Survey (2023), 94% of screen reader users rely on accessible names to understand and navigate web interfaces. When elements lack proper accessible names, they become invisible or meaningless to assistive technology users – like having a conversation where every other word is missing.
The W3C's Accessible Name and Description Computation specification defines exactly how browsers calculate accessible names from various sources. Understanding this process is crucial for developers because the algorithm determines what screen readers announce, regardless of what you intended.
Browsers follow a specific algorithm to determine accessible names, checking sources in this priority order:
1. aria-labelledby (highest priority): ```html
2. aria-label: ```html ```
3. Native labeling methods: ```html ```
4. Text content (for elements that support it): ```html ```
5. title attribute (last resort): ```html ```
The Critical Rule: Higher priority sources completely override lower ones. If an element has both aria-label and text content, only the aria-label is used for the accessible name.
Browser Implementation Data (2023): - Modern browsers have excellent ARIA name calculation support - Chrome, Firefox, Safari, and Edge all implement ARIA standards well
Performance Impact: Name calculation happens on every AT query. Complex aria-labelledby chains with multiple IDs can impact performance on pages with thousands of elements.
WebAbility's audit data from 2023 reveals the most frequent accessible name issues:
Empty or Missing Names (31% of issues): ```html
```
Generic Names (24% of issues): ```html Read more
Read more about WCAG guidelines ```
Inconsistent Visual and Accessible Names (19% of issues): ```html
```
Broken aria-labelledby References (15% of issues): ```html
```
User Impact Statistics (WebAIM 2023): - 78% of users abandon forms with unlabeled controls - 65% report frustration with generic button names - 82% rely on descriptive link text for navigation decisions - 71% use element lists (headings, links, buttons) for page scanning
Complex interfaces require sophisticated naming strategies:
Multi-Part Names with aria-labelledby: ```html MacBook Pro $1,299 Add to cart ```
Dynamic Names for State Changes: ```javascript // Update accessible name when state changes function togglePlayPause(button, isPlaying) { if (isPlaying) { button.setAttribute('aria-label', 'Pause video'); button.innerHTML = ''; } else { button.setAttribute('aria-label', 'Play video'); button.innerHTML = ''; } } ```
Contextual Names for Repeated Elements: ```html
```
Form Field Naming with Multiple Sources: ```html
```Table Cell Naming: ```html
| Product | Price | Actions |
|---|---|---|
| MacBook Pro | $1,299 |
Framework Integration Best Practices: React, Vue, and Angular developers should ensure accessible names update when component state changes and that ID references remain stable across re-renders.
Proper accessible name testing requires multiple approaches:
Browser Developer Tools: - Chrome DevTools: Inspect element → Accessibility panel → shows computed accessible name - Firefox DevTools: Accessibility Inspector shows name calculation - Safari Web Inspector: Accessibility section displays computed names - Edge DevTools: Accessibility tree shows name and role information
Screen Reader Testing: - NVDA: Navigate to element and listen to announcement - JAWS: Use Insert+Tab to announce current element name and role - VoiceOver: Control+Option+F3 to announce current item - Mobile: Test with iOS VoiceOver and Android TalkBack
Automated Testing Tools: ```javascript // axe-core can detect missing accessible names const results = await axe.run(); const nameIssues = results.violations.filter(v => v.id.includes('label') || v.id.includes('name') );
// Custom accessible name validation function validateAccessibleNames() { const interactiveElements = document.querySelectorAll( 'button, a, input, select, textarea, [role="button"], [role="link"]' ); interactiveElements.forEach(element => { const name = getAccessibleName(element); if (!name || name.trim().length === 0) { console.error('Missing accessible name:', element); } }); } ```
Manual Testing Checklist: - Does every interactive element have a meaningful accessible name? - Are names descriptive enough to understand the element's purpose? - Do names remain consistent when elements change state? - Are aria-labelledby references valid and pointing to existing elements? - Do multi-part names make sense when concatenated?
Performance Testing: Monitor accessible name calculation performance, especially for pages with complex aria-labelledby chains or thousands of elements.
User Testing: The ultimate validation is watching real assistive technology users interact with your interface. Their confusion or confidence reveals everything about your accessible name quality.
JavaScript frameworks introduce unique challenges for accessible name management:
React Patterns: ```jsx // Good: Stable ID generation for aria-labelledby function ProductCard({ product }) { const nameId = useId(); const priceId = useId(); return (
// Dynamic accessible names function PlayButton({ isPlaying, videoTitle }) { const label = isPlaying ? `Pause ${videoTitle}` : `Play ${videoTitle}`; return ( ); } ```
Vue.js Approaches:
```vue
Product Name
$99.99
```
Angular Patterns: ```typescript @Component({ template: `
Common Framework Pitfalls: - ID references breaking during component re-renders - Accessible names not updating when component state changes - Memory leaks from event listeners on dynamically generated IDs - Inconsistent naming across component instances
Best Practices: Always test accessible name behavior during component lifecycle events, state changes, and re-renders.
WebAbility provides comprehensive accessible name solutions that ensure every interface element communicates clearly with assistive technologies:
Automated Name Detection and Generation: - Identifies elements missing accessible names across entire sites - Generates contextually appropriate names based on surrounding content and element purpose - Fixes broken aria-labelledby references and validates ID relationships - Ensures consistent naming patterns across similar interface elements - Updates dynamic names when content or state changes
Advanced Name Calculation Analysis: - Real-time accessible name computation validation during development - Cross-browser testing to ensure consistent name calculation - Performance optimization for complex aria-labelledby chains - Detection of naming conflicts and ambiguous references - Validation of multi-language accessible name consistency
Framework-Specific Integration: - React, Vue, and Angular component analysis for accessible name patterns - Automated testing for name stability across component re-renders - Integration with popular UI libraries to ensure proper naming - Development tools for real-time accessible name validation - Best practices guidance for framework-specific naming challenges
Quality Assurance and Testing: - Comprehensive screen reader testing with JAWS, NVDA, and VoiceOver - Accessible name announcement verification across different AT configurations - User testing with people who rely on accessible names for navigation - Cross-platform testing to ensure consistent naming behavior - Performance testing for accessible name calculation efficiency
Business Intelligence and Optimization: - Analytics on accessible name effectiveness and user interaction patterns - A/B testing for accessible name clarity and task completion rates - Conversion rate optimization through better accessible naming - Support ticket reduction through clearer interface communication - ROI measurement for accessible name improvements
Developer Education and Support: - Accessible name training for development teams - Real-time feedback during development on naming quality - Integration with popular development environments and CI/CD pipelines - Code examples and templates for common accessible naming patterns - Ongoing support for complex accessible naming challenges
Enterprise Solutions: - Accessible name audits for large-scale applications and design systems - Custom naming conventions and standards development - Integration with content management systems for consistent naming - Multilingual accessible name management and translation workflows - Accessibility governance and compliance monitoring for accessible names
WebAbility ensures that every element in your interface has a clear, meaningful accessible name that enhances the user experience for everyone who relies on assistive technology. Because when your interface communicates clearly, users can navigate confidently and complete tasks successfully – leading to better engagement, higher conversion rates, and stronger customer relationships.
Join over 1 million websites using WebAbility to ensure digital accessibility compliance and provide equal access to all users.
Supplemental help text associated with an element, often via aria-describedby, that provides additional guidance beyond the accessible name.
A specification that defines roles, states, and properties to improve accessibility of complex UI when native semantics are insufficient.
An area of the page that notifies assistive technologies about dynamic updates. Use sparingly with polite or assertive announcements.
Software or hardware that helps people with disabilities use digital products, e.g., screen readers, magnifiers, switch devices, voice input.
A tactile writing system for blind or low-vision users, represented with raised dots and supported by refreshable braille displays.
This glossary is continuously improved and maintained by WebAbility to advance accessible design and development.Contact us to suggest improvements or report issues.