ウェブページでSafariリーダーを無効にする方法 質問する

ウェブページでSafariリーダーを無効にする方法 質問する

Safari でリーダー オプションがトリガーされるものとトリガーされないものについて詳しく知りたいと思っています。リーダー オプションを無効にするものを実装する予定はありませんが、技術的な演習として興味があります。

これまでに基本的な操作を試して学んだことは次のとおりです。

  • 少なくとも1つは必要H鬼ごっこ
  • 文字数だけではなく、Pタグの数と長さによって決まります
  • おそらく文の区切り「.」やその他の条件を探すでしょう

Safariは、Hタグ、および次のもの:

  • 1タグ、2417 文字
  • 4タグ、1527 文字
  • 5タグ、1150文字
  • 6タグ、862文字

上記のいずれかから 1 文字減らすと、「リーダー」オプションは利用できなくなります。

文字数については、Hタグが役割を果たしているが、残念ながら上記の結果を判断したときにはこれに気付いていなかった。H上記の結果全体でタグが付けられ、修正されました。

その他の興味深い点:

  • 設定<p style="display:none;">タグはカウントから削除します
  • displayに設定しnone、Javascriptで230ms後に表示すると、リーダーオプションも回避されます。

誰かがこれを完全に判断できるなら興味があります。

ベストアンサー1

pやなどの潜在的に「読み取り可能」なタグにマークアップを追加すると、div読みやすさアルゴリズムによってタグが無視され、スコアが下がり、リーダー アイコンが表示されなくなることが期待されます。

Readability のソースを見ると、これを行う 1 つの領域はidclass属性です。これは、これら 2 つの属性の組み合わせデータに対してパターン マッチングを行うためです。たとえば、次のように「コメント」クラスを追加します。

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

その要素は無視されます。「ありそうもない」候補に一致するパターンは次のとおりです。

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

読みやすさスコアを高める可能性のある要素にフラグを設定すると、リーダー アイコンを無効にすることができます。

おすすめ記事