Как отключить Safari Reader на веб-странице - PullRequest
32 голосов
/ 08 июня 2010

Мне любопытно узнать больше о том, что запускает опцию Reader в Safari, а что нет. Я не планировал реализовывать что-либо, что могло бы его отключить, но любопытно, как техническое упражнение.

Вот то, чему я научился с некоторой базовой игрой вокруг:

  • Вам нужен хотя бы один H тег
  • Он идет не только по количеству символов, но и по количеству тегов P и длине
  • Вероятно, ищет разрывы предложений '.' и другие критерии

Safari предоставит «Читатель», если с тегом H и следующим:

  • 1 P тег, 2417 символов
  • 4 P метки, 1527 символов
  • 5 P теги, 1150 символов
  • 6 P метки, 862 символа

Если вы вычли 1 символ из любого из вышеперечисленных, опция «Читатель» недоступна.

Я должен отметить, что подсчет символов в теге H играет определенную роль, но, к сожалению, не осознал этого, когда я определил результаты выше. Предположим, 20+ символов для тега H исправлены в приведенных выше результатах.

Некоторые другие интересные вещи:

  • Установка <p style="display:none;"> для P тегов удаляет их из подсчета
  • Установка display на none, а затем отображение их через 230 мс с помощью Javascript позволяет избежать опции Reader

Мне было бы интересно, если бы кто-нибудь смог определить это полностью.

Ответы [ 9 ]

10 голосов
/ 14 марта 2013

Добавление разметки к потенциально «читаемым» тегам, таким как p и div, может привести к тому, что алгоритм Readability будет игнорировать тег, тем самым снижая оценку, возможно, до такой степени, что он не вызовет значок Reader дляdisplay.

Глядя на источник Readability, одна область для этого находится в атрибутах id и class, так как она выполняет сопоставление с шаблоном для объединенных данных из этих двух атрибутов.Например, добавление класса «comment», например,

<p class="myClass comment">...</p>

, приведет к игнорированию этого элемента.Для «маловероятных» кандидатов используется следующий шаблон:

/combx|comment|disqus|foot|header|menu|rss|shoutbox|sidebar|sponsor/i

Размещение флагов на элементах, которые могут добавить к показателю читабельности, позволяет отключить значок Reader.

7 голосов
/ 10 июня 2010

«Вам нужен хотя бы один элемент <h*>» - это просто неверно. Вот пример: http://mathiasbynens.be/demo/safari-reader-test-3

Мой ответ на другой вопрос Safari Reader предоставляет дополнительную информацию.

Вы также можете прочитать в моем блоге о включении Safari Reader , чтобы узнать все мои выводы по этому вопросу.

2 голосов
/ 25 октября 2013

Вот что у меня сработало:

Я поместил весь контент внутри тега ol.

<ol style = "padding:0;margin:0"> 
   my content
</ol>

Из того, что я читал в другом месте, читатель частично вызван количеством слов на странице, но он не считает слова внутри слова.

2 голосов
/ 10 июня 2010

См. http://code.google.com/p/arc90labs-readability/source/browse/trunk/js/readability.js для "кода" для удобочитаемости.

1 голос
/ 22 октября 2011
1 голос
/ 10 июня 2010

Согласно Регистру , Safari Reader основан на проекте с открытым исходным кодом Читаемость . Возможно, вы сможете просмотреть код , чтобы найти подсказки.

0 голосов
/ 17 июля 2018

Я заставил его работать, избавившись от тегов <p>, изменив их на теги <div>.

Я думаю, что теги <p> сообщают браузеру, что там есть текст для чтения.

Я оставил теги <h>, и они сами не подняли читателя.

0 голосов
/ 23 апреля 2013

У меня был div внутри моего, который обернул весь мой контент. Изменив этот div на элемент, и добавив класс для удаления всех отступов, созданных с помощью кнопки read, на моем мобильном сайте.

0 голосов
/ 09 июня 2010

Похоже, довольно сложный алгоритм, принятый читателем Safari. Я думаю, за этим стоит нечто более простое. Скорее всего, это хороший документ W3C с некоторыми лучшими практиками SEO, как тот, который вы упоминали.

Я верю примерно так:

  1. По крайней мере, H1
  2. <p> теги открываются и закрываются, и правильно следуют за каждым заголовком тегов
  3. общий содержащий слой

Скорее всего, читатель ищет что-то близкое к новому HTML 5 , так что статья о вызывающем классе или что-то в этом роде.

Интересно понять, почему Apple ничего не раскрывает по этому поводу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...