WAV plays in Chrome 8+, Edge 12+, Firefox 3.5+, Safari 4+ on macOS, iOS 3.2+, Opera 10.5+, Samsung 4+, and Android 2.3+. Learn WAV browser support and quirks.

Prince Dewani
May 1, 2026
WAV, formally Waveform Audio File Format, is an uncompressed audio container that Microsoft and IBM defined on the RIFF specification. It works in Chrome 8+, Edge 12+, Firefox 3.5+, Safari 4+ on macOS, Safari iOS 3.2+, Opera 10.5+, Samsung Internet 4+, and the Android Browser 2.3+, while Internet Explorer 5.5 to 11 never supported it.
This guide covers what WAV is, the browsers that support it, key features, comparison with MP3 and FLAC, runtime detection, and known issues.
WAV, short for Waveform Audio File Format, is a RIFF-based container that Microsoft and IBM defined to store digital audio. The format usually wraps Linear Pulse Code Modulation samples without compression, the same coding used on audio CDs. The IETF documents the WAV codec registry in RFC 2361, and the standard MIME type is audio/wav.
WAV plays natively in every modern desktop and mobile browser, with Chrome, Edge, Safari, Firefox, Opera, Samsung Internet, and the Android Browser all decoding Linear PCM WAV through the audio element without a plugin. Internet Explorer is the only mainstream browser that never added support.
Chrome supports WAV from Chrome 8 on Windows, macOS, Linux, and ChromeOS, and on Android from the earliest Play Store release of Chrome for Android. The audio tag, the Media Source Extensions API, and the Web Audio API decodeAudioData call all accept the audio/wav MIME type. Chrome 4 to 7 did not support WAV in HTML5 audio.
Microsoft Edge supports WAV in every version. Legacy EdgeHTML supports WAV from Edge 12 onward, and Chromium Edge supports it by default from Edge 79 on Windows, macOS, and Linux. Both engines decode Linear PCM WAV through Windows Media Foundation on Windows and through the Chromium media stack on other platforms.
Firefox supports WAV from Firefox 3.5 on Windows, macOS, and Linux through the built-in Mozilla audio decoders. Firefox 1 to 3 did not support WAV in the audio element. Firefox for Android added native WAV decoding in Firefox 150, while older Android builds played WAV through the operating system codec.
Safari supports WAV from Safari 4 on macOS and from Safari 3.2 on iOS and iPadOS. Apple decodes WAV through Core Audio, so playback stays consistent across Mac, iPhone, and iPad. Safari 3.1 to 3.2 on macOS did not support WAV in the audio tag, while iOS Safari has supported WAV since the second iOS release that shipped with the audio element.
Opera supports WAV from Opera 10.5 on the Presto engine, and the Chromium-based Opera 15 and later kept the support. Opera 9 to 10.1 did not support WAV. Opera Mobile supports WAV from Opera Mobile 11 on Android, while Opera Mini does not support WAV in any version because it relies on a server-side rendering proxy.
Samsung Internet supports WAV from version 4 on Galaxy phones and tablets. The browser is built on Chromium and uses the Android system decoder for Linear PCM, so WAV support stays in line with Chrome for Android. The audio tag and the Web Audio API decodeAudioData call both accept WAV input.
The legacy stock Android Browser supports WAV from Android 2.3 (Gingerbread). Modern Android phones use Chrome for Android, Samsung Internet, or Firefox for Android, all of which decode WAV by default through the Android system codec. The audio/wav MIME type is recognized end to end on every supported Android release.
Internet Explorer 5.5 through IE 11 never added WAV playback to the audio element. IE 9 to 11 support the element itself but reject the audio/wav MIME type, so the browser falls back to a download prompt. Pages that target IE traffic need a Flash or Windows Media Player plugin, neither of which works in modern Windows. Microsoft has retired Internet Explorer, so use Edge or any modern browser for new WAV work.
Note: WAV playback breaks in Internet Explorer, Opera Mini, and on non-LPCM codec variants. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
WAV packs several technical traits that explain why archives, recording studios, and Web Audio API engineers still ship the format. The container balances raw audio fidelity, a simple file layout, and broad codec flexibility through the IETF codec registry.
WAV is the highest-fidelity choice for web audio, but the file size is the trade-off. The table compares WAV with two common alternatives, MP3 and FLAC, on the dimensions that drive everyday format decisions.
| Dimension | WAV | MP3 | FLAC |
|---|---|---|---|
| Compression type | Uncompressed Linear PCM | Lossy | Lossless compressed |
| Container | RIFF .wav | MP3, ADTS, MP4, 3GP | FLAC native, OGG |
| Standard MIME type | audio/wav | audio/mpeg | audio/flac |
| Browser reach | Every modern browser, no IE | Every browser, including IE 9 to 11 | Chrome 56+, Firefox 51+, Edge 16+, Safari 11+, no IE |
| Bitrate at CD quality | 1,411 kbit/s | 128 to 320 kbit/s | 600 to 1,100 kbit/s |
| Size for a 3-minute track | About 30 MB | About 3 MB | About 15 MB |
| Patent and licensing | Royalty-free public spec | Core patents expired | Royalty-free, IETF RFC 9639 |
| Best fit | Archival masters, short sound effects, Web Audio sources | Maximum compatibility, podcasts, voicemail | Lossless music libraries, hi-fi streaming |
You can confirm WAV support inside any browser using the HTMLMediaElement.canPlayType() API. The call returns one of three strings for each WAV MIME type alias.
The return values are probably (the browser is sure it can play the file), maybe (likely yes, decoding the file header is needed to confirm), or "" (an empty string, which means no). Test the canonical type audio/wav along with audio/wave and audio/x-wav, since some browsers only recognize a subset of the aliases. The MediaSource.isTypeSupported() API returns the same result for adaptive streaming pipelines.
Paste this snippet into the browser DevTools console to confirm WAV support and the MSE pipeline:
// Run in the DevTools console of any browser to test WAV playback.
const a = document.createElement("audio");
const canWav = a.canPlayType("audio/wav");
const canWave = a.canPlayType("audio/wave");
const canXWav = a.canPlayType("audio/x-wav");
console.log("audio/wav support:", canWav || "no");
console.log("audio/wave support:", canWave || "no");
console.log("audio/x-wav support:", canXWav || "no");
if (window.MediaSource) {
console.log(
"MSE WAV (audio/wav):",
MediaSource.isTypeSupported("audio/wav")
);
}If every result is empty, the browser cannot play WAV and the page should fall back to MP3 or AAC inside MP4. The MDN cross-browser audio basics guide recommends pairing two source elements inside the audio tag so the browser picks whichever format it can decode.
WAV is the most reliable choice for short audio clips and archival masters, but several edge cases break in production. The biggest hits are the codec restriction inside the RIFF wrapper, the 4 GiB file size cap, and the bandwidth cost of streaming uncompressed Linear PCM over mobile networks.
In my experience, the codec restriction is the most surprising failure. A WAV file that plays in VLC, Audacity, or QuickTime can return an empty canPlayType string if it ships ADPCM or mu-law inside the RIFF wrapper, since the browser only decodes Linear PCM. Always re-encode user-uploaded WAV to 16-bit Linear PCM at 44.1 or 48 kHz before exposing it to an audio element, or feed the bytes to AudioBufferSourceNode through Web Audio API decodeAudioData, which understands the same codec set.
All WAV version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance