How to create an accessible audio element with controls in HTML
使用带有controls属性的<audio>元素提供播放控制;2. 通过aria-label或<label>为音频添加描述性标签,确保屏幕阅读器用户能理解内容;3. 提供文字稿或摘要,便于听障用户及偏好阅读者获取信息;4. 使用aria-labelledby关联可见标题以增强上下文;5. 包含多种音频格式和备用文本以提升兼容性和可访问性;正确实现这些步骤可使音频内容对所有人真正可访问。
To create an accessible audio element with controls in HTML, you need to ensure the element is usable for people who rely on assistive technologies like screen readers, keyboard navigation, or captions. Here’s how to do it properly.

Use the <audio>
element with the controls
attribute
Start by using the standard HTML <audio>
element and include the controls
attribute so that default playback controls (play, pause, volume) are displayed.
<audio controls> <source src="audio-file.mp3" type="audio/mpeg"> <source src="audio-file.ogg" type="audio/ogg"> Your browser does not support the audio element. </audio>
This provides basic functionality, but accessibility requires more than just the controls.

Provide a descriptive label with aria-label
or <label>
Screen reader users need to understand what the audio is about. Since the default controls don’t include a label, you should add one.
Option 1: Use aria-label
directly on the <audio>
element
<audio controls aria-label="Podcast episode: Introduction to Web Accessibility"> <source src="audio-file.mp3" type="audio/mpeg"> <source src="audio-file.ogg" type="audio/ogg"> Your browser does not support the audio element. </audio>
Option 2: Use a visible label with <label>
and id
<label for="podcast-audio">Listen to podcast: Introduction to Web Accessibility</label> <audio id="podcast-audio" controls> <source src="audio-file.mp3" type="audio/mpeg"> <source src="audio-file.ogg" type="audio/ogg"> Your browser does not support the audio element. </audio>
This approach is better for both accessibility and usability, as it gives all users a clear context.

Include a transcript or summary
Providing a transcript benefits users who are deaf or hard of hearing, those in noisy environments, or people who prefer reading.
<audio controls aria-labelledby="audio-title"> <source src="audio-file.mp3" type="audio/mpeg"> <source src="audio-file.ogg" type="audio/ogg"> Your browser does not support the audio element. </audio> <h3 id="audio-title">Introduction to Web Accessibility (Podcast)</h3> <p>Duration: 12 minutes</p> <div> <h4>Transcript</h4> <p>[Full text of the audio content here]</p> </div>
Using aria-labelledby
links the audio to a visible heading, improving context.
Best practices summary
- ✅ Always use the
controls
attribute so users can play, pause, and adjust volume. - ✅ Add
aria-label
or usearia-labelledby
with a visible label for screen readers. - ✅ Provide a transcript or summary for deaf or hard-of-hearing users.
- ✅ Offer multiple source formats (e.g., MP3 and OGG) for broader browser support.
- ✅ Include fallback text inside the
<audio>
tag for older browsers.
Accessible audio isn’t just about the controls — it’s about context, alternatives, and clarity. With these steps, your audio content becomes usable for everyone.
Basically, just adding controls
isn’t enough. Label it, explain it, and provide a transcript. That’s what makes it truly accessible.
The above is the detailed content of How to create an accessible audio element with controls in HTML. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

To get started with HTML quickly, you only need to master a few basic tags to build a web skeleton. 1. The page structure is essential, and, which is the root element, contains meta information, and is the content display area. 2. Use the title. The higher the level, the smaller the number. Use tags to segment the text to avoid skipping the level. 3. The link uses tags and matches the href attributes, and the image uses tags and contains src and alt attributes. 4. The list is divided into unordered lists and ordered lists. Each entry is represented and must be nested in the list. 5. Beginners don’t have to force memorize all tags. It is more efficient to write and check them while you are writing. Master the structure, text, links, pictures and lists to create basic web pages.

Thenameattributeinaninputtagisusedtoidentifytheinputwhentheformissubmitted;itservesasthekeyinthekey-valuepairsenttotheserver,wheretheuser'sinputisthevalue.1.Whenaformissubmitted,thenameattributebecomesthekeyandtheinputvaluebecomesthevalueinthedatasen

❌Youcannotnesttagsinsideanothertagbecauseit’sinvalidHTML;browsersautomaticallyclosethefirstbeforeopeningthenext,resultinginseparateparagraphs.✅Instead,useinlineelementslike,,orforstylingwithinaparagraph,orblockcontainerslikeortogroupmultipleparagraph

ShadowDOM is a technology used in web component technology to create isolated DOM subtrees. 1. It allows the mount of an independent DOM structure on ordinary HTML elements, with its own styles and behaviors, and does not affect the main document; 2. Created through JavaScript, such as using the attachShadow method and setting the mode to open; 3. When used in combination with HTML, it has three major features: clear structure, style isolation and content projection (slot); 4. Notes include complex debugging, style scope control, performance overhead and framework compatibility issues. In short, ShadowDOM provides native encapsulation capabilities for building reusable and non-polluting UI components.

The style placement method needs to be selected according to the scene. 1. Inline is suitable for temporary modification of single elements or dynamic JS control, such as the button color changes with operation; 2. Internal CSS is suitable for projects with few pages and simple structure, which is convenient for centralized management of styles, such as basic style settings of login pages; 3. Priority is given to reuse, maintenance and performance, and it is better to split external link CSS files for large projects.

Using tags is the easiest and recommended method. The syntax is suitable for modern browsers to embed PDF directly; 2. Using tags can provide better control and backup content support, syntax is, and provides download links in tags as backup solutions when they are not supported; 3. It can be embedded through Google DocsViewer, but it is not recommended to use widely due to privacy and performance issues; 4. In order to improve the user experience, appropriate heights should be set, responsive sizes (such as height: 80vh) and PDF download links should be provided so that users can download and view them themselves.

To create an HTML unordered list, you need to use a tag to define a list container. Each list item is wrapped with a tag, and the browser will automatically add bullets; 1. Create a list with a tag; 2. Each list item is defined with a tag; 3. The browser automatically generates default dot symbols; 4. Sublists can be implemented through nesting; 5. Use the list-style-type attribute of CSS to modify the symbol style, such as disc, circle, square, or none; use these tags correctly to generate a standard unordered list.

ThecontenteditableattributemakesanyHTMLelementeditablebyaddingcontenteditable="true",allowinguserstodirectlymodifycontentinthebrowser.2.Itiscommonlyusedinrichtexteditors,note-takingapps,andin-placeeditinginterfaces,supportingelementslikediv
