Открыть сервис

Browser Compatibility Data

Browser Compatibility Data (данные о совместимости веб-браузеров, также известные как «таблицы совместимости» или «матрицы поддержки») — это структурированная информация о том, какие веб-технологии (HTML-элементы, CSS-свойства, JavaScript-API, HTTP-заголовки и другие функции) поддерживаются различными версиями браузеров на разных операционных системах и устройствах. Данные являются критическим элементом веб-разработки, позволяя разработчикам принимать обоснованные решения о выборе технологий и обеспечивать корректное отображение сайтов для максимальной аудитории.

История

Проблема несовместимости браузеров возникла практически одновременно с появлением первых графических веб-браузеров в начале 1990-х годов. В эпоху «войн браузеров» (середина — конец 1990-х) между Internet Explorer и Netscape Navigator различия в поддержке HTML и JavaScript были настолько значительными, что разработчикам приходилось создавать отдельные версии сайтов для каждого браузера. В этот период данные о совместимости распространялись неформально — через форумы, личные сайты разработчиков и списки рассылки.

Первым систематизированным источником данных о совместимости стал проект QuirksMode (основан в 2000 году), где публиковались сравнительные таблицы поддержки CSS и DOM. В 2005 году появился сайт Can I Use, который к концу 2000-х стал де-факто стандартом для проверки совместимости веб-технологий. В 2010-х годах крупные браузерные вендоры (Google, Mozilla, Microsoft, Apple) начали публиковать собственные данные о поддержке функций в форматах, пригодных для машинной обработки.

В 2016 году Mozilla инициировала проект Browser Compatibility Data (BCD) — открытый репозиторий на GitHub, который структурирует данные о совместимости для всех основных браузеров. В 2020-х годах BCD стал основой для документации MDN Web Docs, а также используется инструментами автоматической проверки совместимости (например, Lighthouse, Autoprefixer).

Структура и формат данных

Данные о совместимости обычно организованы в виде иерархической структуры, где каждый узел соответствует определённой веб-технологии. В репозитории BCD используется формат JSON, где для каждой функции указываются:

Пример структуры для CSS-свойства display: flex (сокращённо): ``json { "css": { "properties": { "display": { "flex": { "support": { "chrome": { "version_added": "21", "prefix": "-webkit-" }, "firefox": { "version_added": "20" }, "ie": { "version_added": "10", "prefix": "-ms-" }, "safari": { "version_added": "6.1", "prefix": "-webkit-" } } } } } } } ``

Источники данных

Основные источники

  1. Can I Use (caniuse.com) — крупнейший коммерческий проект, собирающий данные о поддержке HTML5, CSS3, SVG, JavaScript API. Данные обновляются вручную командой проекта на основе официальных релизов браузеров и тестирования.
  2. MDN Browser Compatibility Data (BCD) — открытый репозиторий на GitHub (github.com/mdn/browser-compat-data), поддерживаемый сообществом разработчиков. Данные верифицируются через автоматические тесты и ревью.
  3. Web Platform Tests (wpt.fyi) — проект W3C, содержащий автоматизированные тесты для проверки соответствия браузеров спецификациям. Результаты тестов используются как первичный источник для BCD.
  4. Официальные релизные заметки браузеров — Google Chrome (chromium.org), Mozilla Firefox (developer.mozilla.org), Apple Safari (developer.apple.com), Microsoft Edge (docs.microsoft.com). Вендоры публикуют списки новых API и изменений в поддержке.
  5. StatCounter / NetMarketShare — данные о доле рынка браузеров, используемые для оценки актуальности информации о совместимости (например, если браузер имеет долю менее 1%, его поддержка может не учитываться).

Дополнительные источники

Применение в веб-разработке

Выбор технологий

Разработчики используют данные о совместимости для принятия решений о том, какие функции можно безопасно использовать в проекте. Например, если целевая аудитория использует браузеры не старше двух лет, можно применять CSS Grid, который поддерживается во всех современных браузерах, но не в Internet Explorer 11. Для принятия решения используются инструменты:

Тестирование и отладка

Данные о совместимости используются в системах автоматического тестирования (Selenium, Puppeteer, Playwright) для выбора браузеров и версий для прогона тестов. Например, если в BCD указано, что свойство aspect-ratio не поддерживается в Safari до версии 15, тесты для этого свойства запускаются только в Safari 15+.

Сборка и оптимизация

Современные сборщики (Webpack, Vite) интегрируются с данными о совместимости для:

Ограничения и критика

Неполнота данных

Данные о совместимости не всегда отражают реальное поведение браузеров. Например, функция может быть указана как поддерживаемая, но иметь скрытые баги или отличаться в реализации. Особенно это касается редко используемых API и старых версий браузеров. По данным исследования 2020 года, около 15% записей в BCD содержали ошибки, связанные с неправильной версией поддержки или отсутствием информации о частичной поддержке.

Зависимость от источников

Данные Can I Use и BCD обновляются с задержкой в несколько недель после выхода новых версий браузеров. Для экспериментальных функций (например, CSS container queries в Chrome 105) информация может отсутствовать до официального релиза. Кроме того, данные о мобильных браузерах (Samsung Internet, Opera Mini, UC Browser) часто менее точны, чем о десктопных.

Субъективность классификации

Статус «частичная поддержка» (partial) не имеет строгого определения. Разные проекты трактуют его по-разному: в Can I Use это означает, что функция работает, но с ограничениями, а в BCD — что реализация неполная или содержит баги. Это может вводить в заблуждение разработчиков, особенно новичков.

Проблемы с устаревшими браузерами

Данные о поддержке в Internet Explorer 11, который перестал обновляться в 2022 году, остаются в BCD, но не обновляются. Аналогичная ситуация с браузерами на базе устаревших движков (например, Edge Legacy на EdgeHTML). Разработчики могут ошибочно полагать, что функция, помеченная как поддерживаемая в IE11, работает корректно, хотя на практике могут быть баги, не зафиксированные в данных.

Будущее

Развитие данных о совместимости связано с автоматизацией сбора информации. Проект Web Platform Tests (WPT) стремится к тому, чтобы результаты тестов автоматически обновляли BCD. В 2023 году Mozilla и Google начали интеграцию WPT с BCD, что позволяет сократить задержку обновления данных до нескольких дней. В 2024 году появились прототипы инструментов, использующих машинное обучение для анализа логов браузеров и выявления скрытых несовместимостей.

Также наблюдается тенденция к унификации форматов: в 2022 году W3C опубликовала черновик спецификации Web Platform Features, которая предлагает единый реестр для всех веб-технологий с автоматической верификацией через WPT. Ожидается, что к 2026 году этот реестр заменит разрозненные источники данных.

Источники

  1. MDN Web Docs — Browser Compatibility Data (BCD) — документация репозитория.
  2. Can I Use — описание методологии сбора данных.
  3. Web Platform Tests — официальный сайт проекта W3C.
  4. StatCounter Global Stats — данные о доле рынка браузеров.
  5. «The State of Browser Compatibility Data» — отчёт Mozilla за 2022 год.
  6. «Automating Browser Compatibility Data Collection» — доклад на конференции Chrome Dev Summit 2023.
  7. W3C Draft — Web Platform Features Registry (2022).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →