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


Answers:


67

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

  1. <article>元素可以很好地用作包装器;Safari Reader可以识别它。我的网站就是一个例子。这不要紧,你选择哪一个包装元素,只要有一个,比其他<body><p>。您可以使用<article><div><section>,或者是用于此目的的语义上不正确的元件,如<nav><aside><footer><header>; 甚至是内联元素,例如<span>(!)。

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

我在这里发布了一些有关我的发现的更多详细信息:http : //mathiasbynens.be/notes/safari-reader


8

我已经在iPhone上测试了100种左右的变体,以找出是什么触发了这种难以捉摸的Reader状态。我的结论如下:

我发现这产生了影响:

  • 在您要触发“阅读器”的文章中,包含大约200个或更多的单词(或包括空白的1000个字符)似乎很必要
  • 当我的单词少于170字时,永远不会触发读者。尽管有时我有180或190个字时会触发该事件。
  • 某些元素(例如<ol><ul>(通常不包含故事)中的文本)将不会计入200个单词(但是,如果由于其他原因触发了阅读器,它们将显示在阅读器中)
  • 将200个单词包装在一个块元素中,例如<div><article>似乎是必须的(也就是说,如果有其他网站还不是这样,我会感到惊讶)

为了进行全面披露,以下是我发现没有影响的内容:

  • 是否使用标题
  • 是否将文本<p>换成a或使其自由流动
  • 标点符号(即删除所有句号,逗号等都没有影响)

7

似乎基于该算法的算法正在寻找p-Tag,并且它会计算诸如“”之类的定界符。在innerText中。得分最高的部分(div)成为焦点。

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

似乎是Reader-mode的基础,至少Safari在Acknowledgements中将其属性化,请参阅:

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

Arc90(Readability)版权所有©Arc90Inc。
可读性是根据Apache许可版本2.0许可的。


3

这个问题(如何在网页中禁用Safari阅读器)具有更多详细信息。复制在这里:


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

到目前为止,我已经学到了一些基本知识:

您至少需要一个H标签。它不仅取决于字符数,还取决于P标签的数量和长度。和其他条件Safari将在带有H标签以及以下内容的情况下提供“阅读器”:

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

我应该注意,H标签的字符计数起了一定作用,但是当我确定上述结果时,可惜没有意识到这一点。假设H标签包含20个以上的字符,并且在以上结果中均已固定。

其他一些有趣的事情:

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

如果有人能完全确定,我将很感兴趣。


2
不正确 读者不需要标题元素即可工作。示例:mathiasbynens.be/demo/safari-reader-test-3在此处了解更多信息:mathiasbynens.be/notes/safari-reader
Mathias Bynens 2010年

2

我为此感到挣扎。我终于拿出<ul>故事中的标记,中提琴!它开始工作。

我没有在身上包裹任何包装纸,但可能是偶然地做的。


1

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

似乎触发它的是一个div块,其中包含很多p和很多文本。


我用<article>我的网站上,读者在那里工作,如mathiasbynens.be/notes/html5-levels但不是在较小的物品,如mathiasbynens.be/notes/document-head使用的<article>似乎并不有什么关系呢。
Mathias Bynens 2010年

1
任何包装元素会做- ,,<div> ...甚至怪异的东西一样,还是做工精细。在此处了解更多信息:mathiasbynens.be/notes/safari-reader<article><section><nav><aside><span>
Mathias Bynens 2010年

1

p标签理论听起来不错。我认为它也可以检测其他元素。我们的包含6个段落的页面之一不会触发阅读器,但是包含4个段落和img标签的页面会触发。

它也足够聪明,可以检测多页文章。在nytimes.com或nymag.com上的多页文章中进行尝试。有兴趣知道它也是如何检测到的。


1

尽管可能令人惊讶,但它的确没有对HTML5文章标记给予任何关注,尤其令人失望的是,Safari 5完全支持CSS中的文章,栏目,导航等-它们现在可以像div一样设置样式,并且其行为与任何块级元素相同。

我已经专门设置了一个带有商品标签和几个内部部分标签的网站,以准备针对此类目的的语义HTML5标签,因此,我真的希望Safari 5将其用于Reader。没有这样的运气-可能应该为此提交一个错误,因为这很有意义。实际上,它完全忽略了页面上的大多数h2级别的子标题,每个子标题都标记为一个部分,仅显示符合前面提到的条件的单个div。

具有讽刺意味的是,该网站的旧版本既没有文章,部分,也没有div标签,但它可以识别整个正文,以便在Reader中显示。


<article>是Safari Reader识别的有效包装器,它可以正常工作。看到我的评论对这个答案的一些例子:stackoverflow.com/questions/2997918/...
马蒂亚斯Bynens

1
我可能不清楚。我的意思是<article>与常规的<div>对待没有任何区别;我希望读者可以看到<article>标签,将内容视为一个块,除非内容符合其其他要求,否则不会这样做。对我而言,结果是因为我的<article>包含几个<section>,而<div> Reader只能获取一个包含的<section>。
马克


1

请参阅文章发布准则

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

简要的历史记录:自Apple的Safari 5浏览器嵌入了一个名为Readability的代码库以来,Safari Reader功能就开始了,Readability最初是一个基于Javascript的简单读取工具,可将任何网页转换为可自定义的阅读视图。它由位于纽约的设计和技术商店Arc90(作为Arc90实验室实验)发布于2009年初。它还嵌入到Amazon Kindle和Flipboard和Reeder等流行的iPad应用程序中。


0

我正在研究从Safari浏览器功能类似的信息“浪费”中清除网站的算法。它不如可读性好,但有一些很棒的东西。

您可以在smartbrowser.codeplex.com项目页面上了解更多信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.