Как отключить Safari Reader на веб-странице
Мне любопытно узнать больше о том, что вызывает параметр Reader в Safari, а что нет. Я бы не планировал реализовать ничего, что могло бы его отключить, но было бы любопытно, как техническое упражнение.
Вот что я узнал до сих пор с некоторыми основными играми вокруг:
- Вам нужен хотя бы один тег H
- Это не число символов, а количество P-тегов и длина
- Наверное, ищет разрывы предложений. и другие критерии
Safari предоставит "Reader", если с тегом H и следующим:
- 1 тег P, 2417 символов
- 4 P-метки, 1527 символов
- 5 тегов P, 1150 символов
- 6 тегов, 862 символов
Если вы вычитаете 1 символ из любого из вышеперечисленных, опция "Reader" недоступна.
Я должен отметить, что количество символов тега H играет роль, но, к сожалению, этого не осознавало, когда я определил результаты выше. Предположим, что более 20 символов для тега H и зафиксированы в результатах выше.
Некоторые другие интересные вещи:
- Настройка
<p style="display:none;">
для тегов P удаляет их из count
- Настройка
display
на none
, а затем показ их через 230 мс с помощью Javascript также избегал опции Reader
Мне было бы интересно, если кто-нибудь сможет это полностью определить.
Ответы
Ответ 1
"Вам нужен хотя бы один элемент <h*>
" - это просто неверно. Вот пример: http://mathiasbynens.be/demo/safari-reader-test-3
Мой ответ на другой вопрос Safari Reader содержит дополнительную информацию.
Вы также можете прочитать мое сообщение в блоге о включении Safari Reader для всех моих выводов по этому вопросу.
Ответ 2
Добавление разметки к потенциально "читаемым" тегам, например p
и div
, может привести к тому, что алгоритм Readability будет игнорировать тег, тем самым снизив оценку, надеюсь, до такой степени, что он не вызывает значок Reader дисплей.
Глядя на источник Readability, одна из областей для этого - это атрибуты id
и class
, так как это сопоставление образцов по комбинированным данным из этих двух атрибутов. Например, добавив класс "comment", например
<p class="myClass comment">...</p>
приведет к игнорированию этого элемента. Шаблон, который сопоставляется для "маловероятных" кандидатов:
/combx|comment|disqus|foot|header|menu|rss|shoutbox|sidebar|sponsor/i
Размещение флагов элементов, которые могут быть добавлены в показатель Readability, может позволить вам отключить значок Reader.
Ответ 3
См. http://code.google.com/p/arc90labs-readability/source/browse/trunk/js/readability.js для "кода" для удобства чтения.
Ответ 4
Вот что сработало для меня:
Я разместил все содержимое внутри тега ol.
<ol style = "padding:0;margin:0">
my content
</ol>
Из того, что я читал в другом месте, читатель частично вызван количеством слов на странице, но он не учитывает слова внутри ol.
Ответ 5
Согласно "Регистр" , Safari Reader основан на проекте с открытым исходным кодом Readability. Возможно, вы сможете просмотреть код для подсказок.
Ответ 6
Отправляй сообщение: http://www.jangro.com/items/how-to-block-safari-5s-new-reader-and-bite-off-your-nose/
Ответ 7
Это похоже на довольно сложный алгоритм, который был принят читателем Safari. Я думаю, что за этим стоит нечто большее.
Скорее всего, хороший документ W3C с лучшей практикой SEO, подобной той, которую вы упомянули.
Я верю что-то вроде этого:
- По крайней мере, H1
-
<p>
открывать и закрывать теги и правильно следовать за каждым тегом заголовка
- общий содержащий слой
Скорее всего, читатель ищет что-то близкое к новому HTML 5, поэтому статья вызывающего абонента класса или что-то в этом роде.
Интересно понять, почему Apple ничего не рассказывала об этом.
Ответ 8
У меня был div внутри моего, который завернул весь мой контент. Меняя этот div как элемент и добавляя класс для удаления всего дополнения, созданного с помощью кнопки, удалил кнопку считывателя на моем мобильном сайте.