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

Can I Use

Can I Use — это веб-сервис и база данных, предоставляющая информацию о поддержке веб-технологий (HTML, CSS, JavaScript, SVG и других) в различных браузерах и их версиях. Сервис позволяет разработчикам и дизайнерам оценить совместимость той или иной функции с целевой аудиторией пользователей, принимая обоснованные решения об использовании новых возможностей или необходимости применения полифиллов и альтернативных решений.

История

Сервис был запущен в 2009 году французским веб-разработчиком и дизайнером Алексисом Девуа (Alexis Deveria). Первоначально проект представлял собой простую таблицу с данными о поддержке CSS-свойств в основных браузерах. Идея создания возникла из практической потребности: разработчикам не хватало единого, актуального и наглядного источника информации о том, какие функции веб-стандартов уже работают в браузерах, а какие — нет.

С течением времени проект значительно расширился. В 2013 году исходный код сервиса был опубликован на GitHub под лицензией MIT, что позволило сообществу участвовать в его развитии и поддержке. К середине 2010-х годов Can I Use стал одним из ключевых инструментов в арсенале фронтенд-разработчиков по всему миру, наряду с такими ресурсами, как MDN Web Docs и CSS-Tricks.

Устройство и функциональность

Структура данных

Основой сервиса является база данных, в которой каждой функции (например, CSS-свойству grid, HTML-тегу <dialog> или JavaScript-методу Array.prototype.includes) сопоставлен набор данных о её поддержке в различных браузерах. Данные структурированы по следующим параметрам:

  • Браузер: Chrome, Firefox, Safari, Edge, Opera, Samsung Internet, QQ Browser, Baidu Browser и другие, включая устаревшие версии (например, Internet Explorer).
  • Версия браузера: Для каждой версии указывается статус поддержки (полная поддержка, частичная поддержка, поддержка с префиксом, отсутствие поддержки).
  • Тип поддержки: Может включать флаги (необходимость включения в настройках браузера), префиксы (например, -webkit-), полифиллы (ссылки на сторонние библиотеки, эмулирующие функциональность) и заметки (уточнения по особенностям реализации).

Интерфейс

Пользовательский интерфейс Can I Use минималистичен и ориентирован на быстрый поиск. Основные элементы:

  • Строка поиска: Позволяет найти конкретную функцию по названию (например, flexbox, async/await, intersection observer).
  • Таблица поддержки: Центральный элемент страницы. Представляет собой таблицу, где строки — это версии браузеров (сгруппированные по браузерам), а столбцы — статусы поддержки, обозначенные цветами:
  • Зелёный: Полная поддержка.
  • Жёлтый: Частичная поддержка или поддержка с префиксом.
  • Красный: Отсутствие поддержки.
  • Серый: Данные отсутствуют или браузер устарел.
  • Панель настроек: Позволяет настроить отображение данных, например, выбрать регион (США, Европа, Азия, Россия и т.д.), указать долю рынка браузеров, включить/отключить устаревшие браузеры.
  • Сводка: Краткая информация о глобальной поддержке функции (в процентах от всех пользователей интернета), а также ссылки на спецификации W3C и страницы MDN.

Ключевые возможности

  • Глобальная статистика: Сервис использует данные о доле рынка браузеров от StatCounter, что позволяет рассчитать процент пользователей, которые могут использовать ту или иную функцию.
  • Региональная статистика: Возможность фильтровать данные по странам и регионам. Например, в России доля Safari значительно ниже, чем в США, что может повлиять на решение о поддержке функций, зависящих от этого браузера.
  • История версий: Можно просмотреть, начиная с какой версии браузера функция стала поддерживаться.
  • Сравнение функций: Позволяет сравнивать поддержку нескольких функций на одной странице.
  • API: Сервис предоставляет программный интерфейс (API), который позволяет интегрировать данные о совместимости в инструменты разработчика (например, в редакторы кода, системы сборки или линтеры).

Применение

Can I Use используется на всех этапах веб-разработки:

  • Планирование: На этапе проектирования архитектуры приложения разработчики могут оценить, какие современные технологии (например, CSS Grid, Web Components, Service Workers) можно использовать без риска потерять значительную часть аудитории.
  • Разработка: В процессе написания кода разработчик может быстро проверить, поддерживается ли выбранное свойство или API в целевых браузерах. Если поддержка отсутствует, принимается решение о добавлении полифилла или использовании альтернативного подхода.
  • Тестирование: Данные Can I Use помогают составить матрицу совместимости для тестирования, определить, какие браузеры и версии необходимо проверить в первую очередь.
  • Документация: Информация с сервиса часто цитируется в технической документации, статьях и руководствах как авторитетный источник данных о совместимости.

Критика и ограничения

Несмотря на широкую популярность, сервис имеет ряд ограничений:

  • Зависимость от данных StatCounter: Данные о доле рынка браузеров, используемые для расчёта процента поддержки, могут не отражать реальную картину для конкретного проекта. Например, для корпоративного веб-приложения, используемого только в среде Windows с Internet Explorer 11, глобальная статистика будет бесполезна.
  • Запаздывание данных: Обновление информации о поддержке новых функций в браузерах может происходить с некоторой задержкой, особенно для бета-версий и ночных сборок.
  • Сложность интерпретации: Статус «частичная поддержка» может означать как незначительные баги, так и отсутствие ключевой функциональности, что требует дополнительного изучения заметок и комментариев.
  • Отсутствие контекста: Сервис не учитывает особенности реализации в разных браузерах, которые могут влиять на производительность или поведение функции. Например, CSS-свойство backdrop-filter может быть поддержано, но работать с разной производительностью.

Альтернативы

Существуют и другие ресурсы, предоставляющие аналогичную информацию:

  • MDN Browser Compatibility Tables: Встроенные таблицы совместимости на страницах документации MDN Web Docs. Данные собираются из того же источника, что и Can I Use, но представлены в более структурированном виде в контексте документации.
  • Web Platform Tests: Проект по созданию кросс-браузерных тестов для веб-платформы. Данные о прохождении тестов могут дать более точную картину, чем субъективные оценки Can I Use.
  • Browserslist: Инструмент командной строки и конфигурационный файл, который использует данные Can I Use для определения целевых браузеров на основе запросов (например, > 1%, last 2 versions, not dead). Широко применяется в инструментах сборки (Autoprefixer, Babel, PostCSS).

Интересные факты

  • Название сервиса является отсылкой к частому вопросу разработчиков: «Can I use this feature?» (Могу ли я использовать эту функцию?).
  • Исходный код проекта написан на PHP и JavaScript. Он доступен для самостоятельного развёртывания и модификации.
  • Данные Can I Use используются в качестве основы для многих других инструментов, включая Autoprefixer (автоматически добавляет вендорные префиксы к CSS) и Babel (транспилятор JavaScript).

Источники

  1. Официальный сайт проекта Can I Use.
  2. Репозиторий проекта на GitHub.
  3. Документация MDN Web Docs.
  4. Статистика StatCounter.

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

На главную BFOmetr →