2015-08-07 5 views
3

Так что я получаю эту ошибку, когда я пытаюсь проверить его here:HTML проверка - Сайт не действует при использовании тел внутри HREF

Bad значение тел: 0000 00 00 00 для атрибута HREF на элементе: Illegal символ в схеме данных: не URL код точки

Мой HTML выглядит следующим образом:

<a href="tel:0000 00 00 00">0000 00 00 00</a> 

есть ли способ исправить это?

ответ

3

Возьмите пространства. Буквенные пробелы не допускаются в URL-адресах, и они не являются частью данных телефонного номера, а просто форматируются для потребления человеком.

-3

Не используйте гиперссылку. Используйте микроданные. Мобильные телефоны узнают, что это номер телефона и позволяют его кликать, но это не повлияет на обычные веб-браузеры.

<div class="vcard"> 
<div class="tel"> 
    12345555555 
</div> 

См: https://stackoverflow.com/a/13409099/3462988

+0

Что такое "обычный" веб-браузер? Прочтите [этот другой ответ] (https://stackoverflow.com/a/13409241/4850040) на ваш связанный вопрос, чтобы узнать, почему скрытие URL-адреса вредит пользователям. Кроме того, ваше предложение вряд ли будет проверено валидатором, поэтому ошибки будут менее легко найдены (и как Павел оказался здесь в первую очередь!). –

+0

Обратите внимание, что это не Microdata, а Microformats. – unor

2

Предполагая, что валидатор проверяет URL против грамматики, приведенной в RFC 3966, он терпит неудачу на пробельных символов. Удалите их или замените их символом visual-separator (например, -), и все должно быть в порядке.

Пример:

<a href="tel:0000-00-00-00">0000 00 00 00</a> 

Section 3 из спецификации имеет грамматики. В частности:

phonedigit   = DIGIT/[ visual-separator ] 
visual-separator  = "-"/"."/"("/")" 

Смотрите также Section 5.1.1, который говорит

, хотя МСЭ-Т E.123 рекомендует использовать символ пробела как визуальные разделители в печатных телефонных номерах, «тела» URI НЕ ДОЛЖНЫ использовать пробелы в визуальных разделителях, чтобы избежать избыточного экранирования .