Glossary / Browser compatibility matrices
Browser compatibility matrices
A browser compatibility matrix documents which browsers, versions, operating systems, and embedded webviews a product supports and tests. It gives product, engineering, and QA teams a shared target for syntax transforms, API polyfills, CSS fallbacks, security policy, and release decisions.
Defining a useful matrix
Specify the browser families and minimum versions, mobile/desktop distinctions, embedded webviews, assistive technology expectations where relevant, and whether support means functional, best-effort, or tested. Market share alone is not enough: customer contracts, security update status, device lifecycle, and user impact matter. Use Browserslist-compatible queries to share target data with Babel, Autoprefixer, and other tools, while recognizing that each tool consumes the query differently.
A matrix should distinguish language syntax support, Web API support, CSS support, and behavior/bug compatibility. A transpiled syntax target does not provide missing APIs. Compatibility databases help answer support questions but can lag releases and may not capture vendor bugs or embedded modifications.
Testing and maintenance
Test boundary versions, representative devices, and critical workflows. Use real-browser automation for broad coverage and targeted manual testing for input, rendering, media, and accessibility behavior. Revisit the matrix on a schedule, communicate deprecations, and instrument real user agents carefully without using them as the sole feature decision.
Interview questions
- Why define a browser matrix? It makes compatibility scope testable and drives build, fallback, and QA policy.
- Does Browserslist guarantee API support? No; it informs tools and depends on their compatibility data/features.
- What should matrix include beyond browser/version? OS, webview, device classes, support level, and critical workflow expectations.
- Why test minimum versions? They expose boundary gaps hidden by current browsers.
- How handle an unsupported browser? Decide explicit graceful degradation, blocking, or best-effort policy and communicate it.