Как работает функция чтения мобильного Safari в iOS 5? Как включить его на моем сайте. Как мне сообщить, какой контент на моей странице является статьей, чтобы активировать эту функцию?
Как включить iOS 5 Safari Reader на моем сайте?
Ответы (11)
Многие ответы, размещенные здесь, содержат ложную информацию. Вот некоторые исправления/уточнения:
Элемент
<article>
отлично работает в качестве оболочки; Safari Reader распознает его. Мой сайт является примером. Неважно, какой элемент оболочки вы выберете, если он есть, кроме<body>
или<p>
. Вы можете использовать<article>
,<div>
,<section>
; или элементы, которые семантически неверны для этой цели, например<nav>
,<aside>
,<footer>
,<header>
; или даже встроенные элементы, такие как<span>
(!).Для работы Reader заголовки не требуются. Вот пример документа без элементов
<h*>
, с которым Reader работает нормально: http://mathiasbynens.be/demo/safari-reader-test-3
Я разместил более подробную информацию о своих выводах здесь: http://mathiasbynens.be/notes/safari-reader а>
Я протестировал около 100 вариантов этого на своем iPhone, чтобы выяснить, что вызывает это неуловимое состояние Reader. Мои выводы таковы:
Вот что я обнаружил, оказало влияние:
- Наличие около 200 или более слов (или 1000 символов, включая пробелы) в статье, в которой вы хотите вызвать «Читатель», кажется необходимым.
- Читатель НИКОГДА не запускался, когда у меня было меньше 170 слов; хотя иногда это срабатывало, когда у меня было 180 или 190 слов.
- Текст внутри определенных элементов, таких как
<ol>
или<ul>
(которые обычно не используются для содержания истории), не будет учитываться при подсчете 200 слов (однако они будут отображаться в средстве чтения, если средство чтения запускается по другим причинам). - Оборачивать 200 слов в блочный элемент, такой как
<div>
или<article>
, кажется необходимым (тем не менее, я был бы удивлен, если бы были какие-либо веб-сайты, на которых этого еще не было)
Для полного раскрытия, вот что я обнаружил, НЕ оказало влияния:
- Независимо от того, используете ли вы заголовок или нет
- Обернуть ли текст в
<p>
или позволить ему свободно течь - Знаки препинания (т. е. удаление всех точек, запятых и т. д. не повлияло)
Кажется, алгоритм, на котором он основан, ищет p-теги и считает разделители, такие как «.» во внутреннем тексте. Раздел (div) с наибольшим количеством баллов получает фокус.
см.: http://lab.arc90.com/experiments/readability/
Кажется, это основа для режима чтения, по крайней мере, Safari приписывает его в Благодарностях, см.:
файл:///C:/Program%20Files/Safari/Safari.resources/Help/Acknowledgments.html
Arc90 (Readability) Copyright © Arc90 Inc.
Readability распространяется под лицензией Apache, версия 2.0.
Этот вопрос (Как отключить Safari Reader на веб-странице а>) содержит более подробную информацию. Скопировано здесь:
Мне любопытно узнать больше о том, что вызывает опцию Reader в Safari, а что нет. Я бы не планировал реализовывать что-либо, что отключило бы его, но любопытно как техническое упражнение.
Вот что я узнал до сих пор с некоторыми базовыми играми:
Вам нужен хотя бы один тег H. Он определяется не только количеством символов, но и количеством тегов P и длиной. Вероятно, ищет разрывы предложений '.' и другие критерии. Safari предоставит «Читатель», если с тегом H и следующим:
1 тег P, 2417 символов 4 тега P, 1527 символов 5 тегов P, 1150 символов 6 тегов P, 862 символа
Я должен отметить, что количество символов в теге H играет роль, но, к сожалению, не понял этого, когда определял результаты выше. Предположим, что тег H содержит более 20 символов и исправлен во всех приведенных выше результатах.
Некоторые другие интересные вещи:
Настройка для тегов P удаляет их из счетчика. Настройка отображения на none, а затем их отображение через 230 мс с помощью Javascript также избегает опции Reader.
Мне было бы интересно, если кто-нибудь может определить это полностью.
Я боролся с этим. Наконец-то я убрал пометки <ul>
в своей истории, и вуаля! он начал работать.
Я не обматывал тело никакими обертками, но, возможно, сделал это случайно.
Тег статьи HTML5 не запускает его в моих тестах. Он также не работает с автономным контентом (т. е. со страницами, сохраненными на вашем локальном компьютере).
Кажется, что это вызывает блок div с большим количеством p и большим количеством текста.
<article>
на своем сайте, и Reader работает там, например. mathiasbynens.be/notes/html5-levels, но не для небольших статей, например mathiasbynens.be/notes/document-head Использование <article>
, похоже, ничего не значит делать с этим.
- person Mathias Bynens; 10.06.2010
<div>
, <article>
, <section>
… Даже такие странные вещи, как <nav>
, <aside>
или <span>
, прекрасно работают. Подробнее читайте здесь: mathiasbynens.be/notes/safari-reader
- person Mathias Bynens; 10.06.2010
Теория тега p звучит хорошо. Я думаю, что он также обнаруживает и другие элементы. Одна из наших страниц с 6 абзацами не запускала Reader, а одна с 4 абзацами и тегом img вызывала.
Он также достаточно умен, чтобы обнаруживать многостраничные статьи. Попробуйте это в многостраничной статье на nytimes.com или nymag.com. Было бы интересно узнать, как он это определяет.
Удивительно, но он действительно не обращает никакого внимания на тег статьи HTML5, особенно разочаровывая, учитывая, что Safari 5 полностью поддерживает статьи, разделы, навигацию и т. д. в CSS — теперь они могут быть оформлены точно так же, как div, и вести себя так же, как любой элемент блочного уровня.
Я специально настроил сайт с тегом статьи и несколькими тегами внутреннего раздела, готовясь к семантической маркировке HTML5 именно для этой цели, поэтому я очень надеялся, что Safari 5 будет использовать это для Reader. Не повезло - вероятно, следует зарегистрировать ошибку в этом, поскольку это имело бы большой смысл. На самом деле он полностью игнорирует большинство подзаголовков уровня h2 на странице, каждый из которых помечен как раздел, и отображает только один элемент div, который соответствует критериям, упомянутым ранее.
По иронии судьбы, старая версия того же сайта, в которой нет ни статьи, ни раздела, ни разделяющих тегов div, распознает для отображения в Ридере все тело целиком.
<article>
— допустимая оболочка, распознаваемая Safari Reader, и она отлично работает. См. мой комментарий к этому ответу для некоторых примеров: как включить программу чтения сафари на моем сайте"> stackoverflow.com/questions/2997918/
- person Mathias Bynens; 10.06.2010
И Firefox, и Chrome имеют аналогичный плагин под названием iReader. Вот его проект с исходным кодом.
http://code.google.com/p/ireader-extension/
Прочтите код, чтобы получить больше.
См. Правила публикации статей.
Вот API о том, как читать и анализировать: API для разработчиков Readability. Уже есть проект, на который вы можете сослаться: ruby-readability.
Краткая история: функция Safari Reader с тех пор, как в браузер Apple Safari 5 была встроена кодовая база под названием Readability, а Readability начинался как простой инструмент для чтения на основе Javascript, который превращал любую веб-страницу в настраиваемое представление для чтения. Он был выпущен Arc90 (в качестве эксперимента Arc90 Lab), Нью-Йоркской Городской магазин дизайна и технологий, созданный в начале 2009 года. Он также встроен в Amazon Kindle и популярные приложения для iPad, такие как Flipboard и Reeder.
Я работаю над алгоритмами очистки веб-сайтов от информационного "мусора" по аналогии с функцией Safari Reader. Это не так хорошо, как читабельность, но есть кое-что интересное.
Вы можете узнать больше на странице проекта smartbrowser.codeplex.com.