pub struct Audio;Expand description
The <audio> element - embeds sound content into documents.
§Purpose
The <audio> element is used to embed audio content in documents. It may contain one or
more audio sources using nested <source> elements or the src attribute. The browser
will choose the most suitable source. It provides built-in playback controls and APIs for
programmatic control.
§Content Categories
- Flow Content
- Phrasing Content
- Embedded Content
- If with
controlsattribute: Interactive Content - Palpable Content
§Permitted Content Model
- Zero or more
<source>elements - Zero or more
<track>elements - Transparent content (fallback for browsers without audio support)
- No media elements among descendants
§Common Use Cases
- Music players and playlists
- Podcast players and audio articles
- Sound effects for interactive elements
- Audio feedback for user actions
- Background music or ambient sound
§Key Attributes
src: URL of the audio filecontrols: Show playback controlsautoplay: Automatically start playback (use with caution)loop: Loop the audiomuted: Mute audio by defaultpreload: Hint for loading strategy (“none”, “metadata”, “auto”)crossorigin: CORS settings for audio fetchingvolume: Initial volume (0.0 to 1.0, set via JavaScript)
§Example
<!-- Basic audio player -->
<audio src="/audio/music.mp3" controls>
Your browser doesn't support the audio element.
</audio>
<!-- Multiple format sources -->
<audio controls>
<source src="/audio/podcast.opus" type="audio/opus">
<source src="/audio/podcast.ogg" type="audio/ogg; codecs=vorbis">
<source src="/audio/podcast.mp3" type="audio/mpeg">
<p>Your browser doesn't support HTML5 audio. <a href="/audio/podcast.mp3">Download</a></p>
</audio>
<!-- Looping background audio -->
<audio src="/audio/ambient.mp3" loop muted autoplay>
</audio>
<!-- Audio with preloading control -->
<audio src="/audio/effect.mp3" preload="none" id="sound-effect">
</audio>§Accessibility
- Provide transcripts for audio-only content
- Use captions/transcripts for important information conveyed via audio
- Don’t use
autoplaywith sound, as it can be disruptive - Ensure playback controls are keyboard accessible
- Consider users with hearing impairments
§WHATWG Specification
Trait Implementations§
Source§impl HtmlElement for Audio
impl HtmlElement for Audio
impl CanContain<Source> for Audio
impl CanContain<Track> for Audio
impl EmbeddedContent for Audio
impl FlowContent for Audio
impl PalpableContent for Audio
impl PhrasingContent for Audio
Auto Trait Implementations§
impl Freeze for Audio
impl RefUnwindSafe for Audio
impl Send for Audio
impl Sync for Audio
impl Unpin for Audio
impl UnwindSafe for Audio
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more