Table of Contents
Use the <audio> element with the controls attribute
Provide a descriptive label with aria-label or <label>
Option 1: Use aria-label directly on the <audio> element
Option 2: Use a visible label with <label> and id
Include a transcript or summary
Best practices summary
Home Web Front-end HTML Tutorial How to create an accessible audio element with controls in HTML

How to create an accessible audio element with controls in HTML

Aug 05, 2025 pm 01:10 PM

使用带有controls属性的<audio>元素提供播放控制;2. 通过aria-label或<label>为音频添加描述性标签,确保屏幕阅读器用户能理解内容;3. 提供文字稿或摘要,便于听障用户及偏好阅读者获取信息;4. 使用aria-labelledby关联可见标题以增强上下文;5. 包含多种音频格式和备用文本以提升兼容性和可访问性;正确实现这些步骤可使音频内容对所有人真正可访问。

How to create an accessible audio element with controls in HTML

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.

How to create an accessible audio element with controls in HTML

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.

How to create an accessible audio element with controls in HTML

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.

How to create an accessible audio element with controls in HTML

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 use aria-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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1580
276
Essential HTML Tags for Beginners Essential HTML Tags for Beginners Jul 27, 2025 am 03:45 AM

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.

What is the name attribute in an input tag for? What is the name attribute in an input tag for? Jul 27, 2025 am 04:14 AM

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

Can you put a  tag inside another  tag? Can you put a tag inside another tag? Jul 27, 2025 am 04:15 AM

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

Shadow DOM Concepts and HTML Integration Shadow DOM Concepts and HTML Integration Jul 24, 2025 am 01:39 AM

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.

HTML `style` Tag: Inline vs. Internal CSS HTML `style` Tag: Inline vs. Internal CSS Jul 26, 2025 am 07:23 AM

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.

How to embed a PDF document in HTML? How to embed a PDF document in HTML? Aug 01, 2025 am 06:52 AM

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.

How to create an unordered list in HTML? How to create an unordered list in HTML? Jul 30, 2025 am 04:50 AM

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.

How to use the contenteditable attribute? How to use the contenteditable attribute? Jul 28, 2025 am 02:24 AM

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

See all articles