Как делает функцию Читателя Мобильного Safari в работе iOS 5? Как я включаю его на своем сайте. Как я говорю это, какое содержание на моей странице статья должна инициировать эту функцию?
Похоже, алгоритм, на котором он основан, ищет p-теги и считает такие разделители, как "." во внутреннем тексте. Раздел (div) с наибольшим количеством очков получает фокус.
см .: http://lab.arc90.com/experiments/readability/
Похоже, это основа для режима чтения, по крайней мере, Safari приписывает это в Благодарностях, см .:
file: /// C: /Program%20Files/Safari/Safari.resources/Help/Acknowledgments.html
Arc90 (читаемость)
Авторские права © Arc90 Inc.
Читаемость под лицензией Apache License, Version 2.0.
Теория тега p звучит хорошо. Я думаю, что она также обнаруживает и другие элементы. Одна из наших страниц с 6 абзацами не вызвала считывателя, а другая с 4 абзацами и тегом img - вызвала.
Он также достаточно умен, чтобы обнаруживать многостраничные статьи. Попробуйте это на многостраничной статье на nytimes.com или nymag.com. Было бы интересно узнать, как он обнаруживает и это.
Каким бы удивительным это ни было, он действительно не обращает внимания на тег статьи HTML5, что особенно разочаровывает, учитывая, что Safari 5 полностью поддерживает статьи, разделы, навигацию и т. Д. В CSS - они могут быть стилизованы так же, как div и ведут себя так же, как и любой элемент уровня блока.
Я специально настроил сайт с тегом article и несколькими тегами внутренних разделов, готовясь к семантической маркировке HTML5 именно для этой цели, поэтому я действительно надеялся, что Safari 5 будет использовать это для Reader. Нет такой удачи - вероятно, стоит сообщить об этом, поскольку это имело бы большой смысл. Фактически он полностью игнорирует большинство подзаголовков уровня h2 на странице, каждый из которых помечен как раздел, и отображает только один div, который соответствует критериям, упомянутым ранее.
По иронии судьбы, старая версия того же сайта, в которой нет ни статьи, ни раздела, ни разделительных тегов div, распознает все тело для отображения в Reader.
Многие ответы, размещенные здесь, содержат ложную информацию. Вот некоторые исправления / уточнения:
Элемент Для работы Reader заголовки не требуются. Вот пример документа без каких-либо элементов Я разместил более подробную информацию о своих выводах здесь: http://mathiasbynens.be/notes/safari-reader
отлично работает как оболочка; Safari Reader распознает это. Мой сайт является примером . Неважно, какой элемент оболочки вы выберете, если он есть, кроме
или
. Вы можете использовать
,
; или элементы, которые семантически неверны для этой цели, например
,
,
,
; или даже встроенные элементы, такие как
(!).
, с которым Reader отлично работает: http: // mathiasbynens.be / demo / safari-reader-test-3
Этот вопрос (Как отключить Safari Reader на веб-странице) имеет больше деталей. Скопировано сюда:
Мне интересно узнать больше о том, что вызывает опцию Reader в Safari, а что нет. Я не планирую реализовывать ничего, что могло бы отключить эту опцию, но любопытно в качестве технического упражнения.
Вот что я узнал на данный момент, немного поигравшись:
Вам нужен по крайней мере один тег H. Не только по количеству символов, но и по количеству тегов P и длине. Возможно, ищет разрывы предложений '.' и другие критерии. Safari предоставит 'Reader', если при наличии тега H и следующего:
1 тег P, 2417 символов 4 P-тега, 1527 символов 5 P тегов, 1150 символов 6 P-тегов, 862 символа Если вычесть 1 символ из любого из перечисленных выше, опция 'Reader' будет недоступна.
Я должен отметить, что количество символов H-тега играет определенную роль, но, к сожалению, я не знал об этом, когда определял результаты выше. Предположим, что H-тег состоит из 20+ символов, и результаты, приведенные выше, будут фиксированными.
Некоторые другие интересные вещи:
Установка для тегов P удаляет их из подсчета. Установка display в none, а затем показ их на 230 мс позже с помощью Javascript также избегает опции Reader
Мне будет интересно, если кто-нибудь сможет определить это полностью.
Тег HTML5 article не срабатывает на моих тестах. Также кажется, что он не работает на автономном контенте (т. е. на страницах, сохраненных на локальной машине).
Что срабатывает, так это блок div с большим количеством символов p с большим количеством текста.
Я работаю над алгоритмами очистки веб-сайтов от информационных «отходов», аналогичных функции Safari Reader. Это не так хорошо, как читаемость, но есть кое-что интересное.
Подробнее см. На странице проекта smartbrowser.codeplex.com .