A legibilidade consiste principalmente em heurísticas que "funcionam bem de alguma forma" em muitos casos.
Eu escrevi alguns trabalhos de pesquisa sobre este tópico e gostaria de explicar por que é fácil encontrar uma solução que funcione bem e quando fica difícil chegar perto de 100% de precisão.
Parece haver uma lei linguística subjacente à linguagem humana que também (mas não exclusivamente) se manifesta no conteúdo da página da Web, que já separa claramente dois tipos de texto (texto completo vs. texto não completo ou, aproximadamente, " conteúdo principal "vs." clichê ").
Para obter o conteúdo principal do HTML, em muitos casos é suficiente manter apenas os elementos de texto HTML (ou seja, blocos de texto que não são interrompidos pela marcação) que têm mais de cerca de 10 palavras. Parece que os humanos escolhem entre dois tipos de texto ("curto" e "longo", medido pelo número de palavras que emitem) para duas motivações diferentes de escrever um texto. Eu as chamaria de motivações "navegacionais" e "informativas".
Se um autor deseja que você obtenha rapidamente o que está escrito, ele / ela usa um texto "navegacional", ou seja, poucas palavras (como "PARAR", "Leia isto", "Clique aqui"). Este é o tipo de texto mais proeminente em elementos de navegação (menus etc.)
Se um autor quer que você entenda profundamente o que ele quer dizer, ele usa muitas palavras. Dessa forma, a ambigüidade é removida ao custo de um aumento na redundância. O conteúdo semelhante a um artigo geralmente se enquadra nessa classe, pois contém mais do que apenas algumas palavras.
Embora essa separação pareça funcionar em uma infinidade de casos, está ficando complicada com títulos, frases curtas, isenções de responsabilidade, rodapés de direitos autorais etc.
Existem estratégias e recursos mais sofisticados que ajudam a separar o conteúdo principal do clichê. Por exemplo, a densidade do link (número de palavras em um bloco que estão vinculadas versus o número total de palavras no bloco), as características dos blocos anteriores / seguintes, a frequência de um texto de bloco específico na Web "inteira", Estrutura DOM do documento HTML, a imagem visual da página etc.
Você pode ler meu artigo mais recente " Detecção de padrões usando recursos de texto raso " para obter alguns insights de uma perspectiva teórica. Você também pode assistir ao vídeo da minha apresentação em papel no VideoLectures.net.
"Legibilidade" usa alguns desses recursos. Se você observar cuidadosamente o changelog do SVN, verá que o número de estratégias variou ao longo do tempo, assim como a qualidade de extração da Legibilidade. Por exemplo, a introdução da densidade de link em dezembro de 2009 ajudou muito a melhorar.
Na minha opinião, portanto, não faz sentido dizer "Legibilidade é assim", sem mencionar o número exato da versão.
Publiquei uma biblioteca de extração de conteúdo HTML de código aberto chamada boilerpipe , que fornece várias estratégias de extração diferentes. Dependendo do caso de uso, um ou outro extrator funciona melhor. Você pode experimentar esses extratores em páginas de sua escolha usando o aplicativo boilerpipe-web no Google AppEngine.
Para deixar os números falarem, consulte a página " Benchmarks " no wiki do boilerpipe, que compara algumas estratégias de extração, incluindo boilerpipe, legibilidade e Apple Safari.
Devo mencionar que esses algoritmos assumem que o conteúdo principal é, na verdade, um texto completo. Há casos em que o "conteúdo principal" é outra coisa, por exemplo, uma imagem, uma mesa, um vídeo etc. Os algoritmos não funcionam bem para esses casos.
Felicidades,
cristão