Текущее состояние телефонных ссылок
На сайтах уже длительное время используются телефонные ссылки – ссылки, вызывающие номер телефона, если устройство поддерживает такую возможность. Тем не менее, они до сих пор вызывают путаницу, например, устройство автоматически распознает телефонные номера и создает ссылки, но это срабатывает не каждый раз.
На сегодняшний день на мобильных устройствах и десктопах есть достаточное количество трафика для звонков, поэтому о телефонных ссылках нужно знать как можно больше и активно их использовать.
Раскройте все тонкости по использованию ссылок с телефонным протоколом с нашей помощью.
Использование по умолчанию
У нас есть сниппет для телефонных ссылок который был опубликован на css-tricks.com в 2011:
<a href="tel:1-562-867-5309">1-562-867-5309</a>
Он также работает и для текстовой ссылки:
<a href="tel:1-562-867-5309">Нажмите для вызова!</a>
tel: это не столько функция, сколько протокол, как и http: и mailto: - протоколы для свойств тега <a>. В спецификации об этом ничего не сказано, хотя HTML5 обеспечивает поддержку пользовательских обработчиков протоколов, если такой протокол допускается для использования устройством.
Протокол tel: используется по умолчанию, при том, что его официальная спецификация отсутствует. Он был предложен в стандартизацию еще в 2000 году и позже принят IOS, что делает его де-факто стандартизированным примерно в 2007. Есть и другие телефонные протоколы (которые рассмотрим чуть позже), но мы будем концентрироваться на tel: учитывая его относительную известность.
Поддержка браузеров
Из-за того, что у tel:, как у обработчика ссылок, нет официальной спецификации, то и все браузеры ведут себя с ним по-разному. Например, один браузер решит, что необходимо открыть приложение и вызовет диалоговое окно с запросом, какие приложения использовать. В других случаях tel: может быть проигнорирован вовсе.
|
Браузер |
Ссылка ли это? |
При нажатии на эту ссылку... |
|---|---|---|
|
Android |
да |
Запускает приложение телефона |
|
BlackBerry 9900 |
да |
Инициирует телефонный звонок |
|
Chrome |
да |
Вызывается диалоговое окно, подтверждающие использование другого приложения |
|
Edge |
да |
Вызывается диалоговое окно, подтверждающие использование другого приложения |
|
Internet Explorer 11 |
да |
Вызывается диалоговое окно, подтверждающие использование другого приложения |
|
Internet Explorer 11 Mobile |
да |
Инициирует телефонный звонок |
|
iOS |
да |
Вызываются параметры для вызова, сообщение, скопировать или добавить номер в приложение Контакты |
|
Opera (OSX) |
да |
Вызывается диалоговое окно, подтверждающие использование другого приложения |
|
Opera (Windows) |
да |
Вызывается диалоговое окно с сообщением об ошибке, которая не признает протокол |
|
Safari |
да |
Запуск FaceTime |
Стилизация телефонных ссылок
Стилизация телефонных номеров такая же, как и любых других ссылок. По умолчанию наследует стили для якорей:
a {
color: orange;
text-decoration: none;
}
Если нам необходимо применить стили только для телефонных ссылок, то это можно сделать с помощью псевдо селектора, который ищет снаружи tel: - текст в заданном URL:
a[href^="tel:"] {
color: orange;
text-decoration: none;
}
На Tuts+ есть хороший трюк с помощью псевдо селектора :: before - добавить код юникода (символ телефона) перед отображением телефонного номера:
a[href^="tel:"]:before {
content: "\260e";
margin-right: 0.5em;
}
Альтернатива телефонным ссылкам
tel: это не единственный способ инициировать телефонный звонок с помощью ссылки. Существует несколько других обработчиков на основе протокола телефона:
- callto: точно такой же как
tel:, но используется для инициирования вызовов через приложение Skype. - auto-detected: многие браузеры автоматически определяют телефонный номер в формате HTML и создают телефонную ссылку, поэтому нет необходимости менять стили ссылки. Например, iOS создаст такую ссылку, но результат будет заметно отличаться от Chrome на Android.
- sms: пропустить вызов и перейти прямо к текстовым сообщением. Это возможность реализована только в некоторых браузерах.
- fax: возвращайтесь в будущее с факсами. Опять же, реализовано не во всех браузерах и не надежно.
Рассмотрим контекст
Телефонная ссылка может выступать как отличный призыв к действию, особенно на мобильных телефонах. Но в то же время, на десктопе телефонная ссылка может рассматриваться как препятствие, где телефонный звонок невозможен, если не установлена специальная программа.
Одна из идей – создать отдельный класс для телефонных ссылок и показывать её или скрывать в зависимости от того, какой браузер используется. Modernizr и медиа-запросы в таком случае весьма удобны, но пока еще неточны.
Использование кодов стран
Код страны не обязателен, но может быть полезен для сайтов с международным трафиком. Коду страны может предшествовать +, но это тоже необязательно.
<a href="tel:+01-562-867-5309">1-562-867-5309</a>
Поисковая оптимизация
SEO-специалисты могли бы добавить больше по оптимизации телефонной ссылки чем я. Впрочем, Google предлагает структурированный формат данных для местных предприятий и его использование сделает телефонную ссылку более узнаваемой для поисковых роботов, форматируя их на страницах так, что номер становится более действенным. Dudley Storey предоставляет отличный обзор следующим примером:
<div itemscope itemtype="http://schema.org/LocalBusiness">
<h1 itemprop="name">Beach Bunny Swimwear</h1>
Phone:
<span itemprop="telephone">
<a href="tel:+18506484200">
850-648-4200
</a>
</span>
</div>
С другой стороны, если нужно, чтобы поисковые системы не следовали за телефонными ссылками, вы можете добавить rel="nofollow", тем самым препятствуя их индексации. Для ссылки, которая не обозначена как призыв к действию - это хорошая идея, так как веб-сканеры не попытаются пройти по ссылке «в никуда».
<a href="tel:+01-562-867-5309" rel="nofollow">1-562-867-5309</a>
Отключение обнаружения номера в IOS
Если вы планируете добавить телефонные ссылки в верстку сайта, то можете рассмотреть возможность отключить авто определение телефонных номеров в IOS. Для отключения добавьте следующие строки в документе <head>:
<meta name="format-detection" content="telephone=no">
Дальнейшее чтение
- Быстрый Совет: Сделать что-нибудь с телефонными номерами Tuts +
- Добавление телефонных номеров на веб-страницу с HTML5 и микроданными Dudley Storey
- Оригинальный проект предложения 2806, который был устаревшим Предложение 3966
- Apple, URL Схемы Справка