ReferenceBeginner3-5 min reference
Cross-Browser Testing
You can't test every browser × OS × version combination, so cross-browser testing is really about prioritising sensibly and knowing where engines genuinely differ. This sheet is the matrix and the gotchas; for layout-size coverage see Responsive Testing, and for tooling see the device-cloud tools linked below.
The engines (this is what really varies)
| Engine | Browsers |
|---|---|
| Blink | Chrome, Edge, Opera, Brave, most Android |
| WebKit | Safari (macOS + all iOS browsers) |
| Gecko | Firefox |
Testing one browser per engine catches most rendering differences. iOS is special: every iOS browser uses WebKit, so "Chrome on iPhone" is really Safari's engine.
Prioritising coverage
- Pull your analytics — test what your users actually use.
- Cover the three engines at minimum.
- Add the current + previous version of each major browser.
- Don't forget Safari on iOS — usually the biggest gap.
Where bugs cluster
- Date/number/
<input type>rendering (esp. Safari). - Flexbox/grid edge cases and
gapsupport. - New CSS/JS APIs not yet in Safari/older browsers (check support first).
- Font rendering and form-control styling.
- Autoplay, storage, and cookie policies differing per browser.
Common mistakes
- Testing many Blink browsers (Chrome, Edge, Brave) and calling it "cross-browser" — it's one engine.
- Skipping real iOS Safari (emulators ≠ the real thing).
- Coverage chosen by gut, not analytics.
- Ignoring the previous browser version users haven't updated from.
Run automated suites across engines with a device cloud (BrowserStack, LambdaTest, Sauce Labs) — linked below.
// Related resources