如何在我的网站上启用iOS 5 Safari Reader?

时间:2010-06-08 13:56:02

标签: ios5 safari mobile-safari

iOS 5中Mobile Safari的Reader功能如何工作?如何在我的网站上启用它。我如何告诉它我的页面上的哪些内容是触发此功能的文章?

11 个答案:

答案 0 :(得分:67)

此处发布的许多答案都包含虚假信息。以下是一些更正/澄清:

  1. <article>元素可以作为包装器使用; Safari Reader识别它。 My site is an example。除了<body><p>之外,只要有一个包装元素,您选择哪个包装元素无关紧要。您可以使用<article><div><section>;或者出于此目的在语义上不正确的元素,例如<nav><aside><footer><header>;甚至内联元素,如<span>(!)。

  2. 读者工作时无需标题。以下是没有任何<h*>元素的文档示例,其中Reader可以正常工作:http://mathiasbynens.be/demo/safari-reader-test-3

  3. 我在此发布了有关我的调查结果的更多详细信息:http://mathiasbynens.be/notes/safari-reader

答案 1 :(得分:7)

它所基于的算法似乎正在寻找p-Tags,它会将分隔符视为“。”。在innerText中。点数最多的部分(div)成为焦点。

请参阅: http://lab.arc90.com/experiments/readability/

似乎是Reader-mode的基础,至少Safari在致谢中将其归属,请参阅:

  

文件:/// C:/Program%20Files/Safari/Safari.resources/Help/Acknowledgments.html

Arc90(可读性) 版权所有©Arc90 Inc.
可读性根据Apache许可证2.0版获得许可。

答案 2 :(得分:7)

我已经在我的iPhone上测试了大约100个这样的变体,以便找出触发这个难以捉摸的Reader状态的原因。我的结论如下:

以下是我发现的影响:

  • 您想要触发“阅读器”的文章中包含大约200个或更多单词(或1000个字符,包括空格)似乎是必要的
  • 当我的单词少于170个时,读者从未被触发;虽然当我有180或190个单词时有时会触发它。
  • 某些元素(例如<ol><ul>(通常不用于包含故事)中的文字不会计入200个单词(如果是读者,它们将显示在阅读器中因其他原因被触发)
  • <div><article>这样的块元素中包含200个单词似乎是必要的(也就是说,如果有任何网站不是这样的话,我会感到惊讶)< / LI>

对于完全披露,我发现这是没有影响的:

  • 是否使用标题
  • 是将文字包装在<p>中还是让它自由流动
  • 标点符号(即删除所有句号,逗号等,没有影响)

答案 3 :(得分:3)

这个问题(How to disable Safari Reader in a web page)有更多细节。复制到这里:


  

我很想知道更多关于什么触发了Safari中的Reader选项以及什么没有。我不打算实施任何可以禁用它的东西,但作为一项技术练习很好奇。

     

以下是我到目前为止所学到的一些基本知识:

     

您至少需要一个H标签   它不是单独使用字符数,而是通过P标签的数量和长度   可能会寻找句子'。'和其他标准   如果使用H标签,Safari将提供“阅读器”,并提供以下内容:

     

1个P标签,2417个字符   4个P标签,1527个字符   5个P标签,1150个字符   6个P标签,862个字符   如果从上述任何一个字节中减去1个字符,则“阅读器”选项不可用。

     

我应该注意到H标签的字符数是一个部分,但遗憾的是当我确定上面的结果时没有意识到这一点。假设H标签有20多个字符,并在上面的结果中修复。

     

其他一些有趣的事情:

     

P标签的设置会将其从计数中删除   将显示设置为none,然后使用Javascript在230ms后显示它们也避免使用Reader选项

     

如果有人能够全面确定,我会感兴趣。

答案 4 :(得分:2)

我正在努力解决这个问题。我终于在我的故事和中提琴中取出了<ul>标记!它开始工作了。

我没有把任何包装物放在身体周围,但可能是偶然做到的。

答案 5 :(得分:1)

HTML5文章标记在我的测试中不会触发它。它似乎也不适用于离线内容(即保存在本地计算机上的页面)。

似乎触发它的是一个div块,其中有很多带有大量文本的p。

答案 6 :(得分:1)

p标签理论听起来不错。我认为它也会检测其他元素。我们的一个页面有6个段落没有触发Reader,但有一个有4个段落和一个img标签。

它还足够智能,可以检测多页文章。在nytimes.com或nymag.com上的多页文章中试一试。有兴趣知道它是如何检测到的。

答案 7 :(得分:1)

虽然它可能令人惊讶,但它确实没有关注HTML5文章标签,特别令人失望的是Safari 5完全支持CSS中的文章,部分,导航等 - 它们的样式可以像div现在,行为与任何块级元素相同。

我专门设置了一个带有文章标签和几个内部标签的网站,为语义HTML5标签做准备就是为了这个目的,所以我真的希望Safari 5能够将它用于Reader。没有这样的运气 - 可能应该提出一个错误,因为它会有很大的意义。它实际上完全忽略了页面上的大多数h2级子标题,每个子标记都标记为一个部分,只显示符合前面提到的标准的单个div。

具有讽刺意味的是,同一网站的旧版本(既没有文章,部分也没有分隔div标签),可识别整个机身以便在Reader中显示。

答案 8 :(得分:1)

Firefox和Chrome都有类似的名为iReader的插件。这是带有源代码的项目。

http://code.google.com/p/ireader-extension/

阅读代码以获取更多信息。

答案 9 :(得分:1)

请参阅Article Publishing Guidelines

以下是有关如何阅读和解析的API:Readability Developer APIs。您已经有一个项目可以参考:ruby-readability

简史: Safari阅读器功能,因为Apple的Safari 5浏览器嵌入了一个名为Readability的代码库,而Readability最初是一个基于Javascript的简单阅读工具,可将任何网页转换为可自定义的阅读视图。它于2009年初由Arc90(作为Arc90 Lab实验),一家位于纽约市的设计和技术商店发布。它还嵌入了亚马逊Kindle和流行的iPad应用程序,如Flipboard和Reeder。

答案 10 :(得分:0)

我正在开发用于清理网站的算法,这些算法类似于Safari阅读器功能的“浪费”信息。它不如可读性好,但有一些很酷的东西。

您可以在smartbrowser.codeplex.com项目页面了解详情。