← Toda a documentação

Estatísticas de legibilidade

Mostra o quão difícil um texto é de ler: o índice de facilidade de leitura de Flesch (Flesch Reading Ease), o nível escolar de Flesch–Kincaid, um tempo de leitura estimado e as contagens de palavras, frases e sílabas por trás deles. Tudo é calculado no navegador; nenhum serviço ou chave é necessário.

A caixa de diálogo Readability statistics sobre o editor, mostrando Flesch Reading Ease 80.4 Easy (6th grade), Flesch-Kincaid Grade 5.3, Reading time 42 sec, Words 130, Sentences 10, Avg words per sentence 13, Avg syllables per word 1.34, Characters 605
A caixa de diálogo para um artigo de 130 palavras com frases curtas e simples.

Ative o recurso

O recurso é o plugin readabilitystats.js (também incluído em plugins/all_plugins.js). Ele fica ativo assim que é carregado. A caixa de diálogo é aberta pelo comando readability; não há botão na barra de ferramentas; então chame o comando a partir do seu próprio botão, ou deixe os usuários digitarem "/readability" no menu "/" quando o plugin de comandos de barra estiver carregado.

<link rel="stylesheet" href="/richtexteditor/rte_theme_default.css">
<script src="/richtexteditor/rte.js"></script>
<script src="/richtexteditor/plugins/readabilitystats.js"></script>

<div id="editor"><p>The station opened in 1911 and served the valley for sixty years.</p></div>
<button type="button" onclick="editor.execCommand('readability')">Readability</button>
<script>
var editor = new RichTextEditor("#editor", {
    readabilityWordsPerMinute: 200
});
</script>

Opções

OpçãoPadrãoO que faz
readabilityStatstruefalse desativa o plugin: nenhum comando e nenhum método.
readabilityWordsPerMinute200Velocidade de leitura usada na estimativa do tempo de leitura.

Por script

editor.getReadabilityStats() mede o documento atual; passe uma string para medi-la em vez do documento. Para o artigo da imagem, ele retornou:

{
  words: 130, sentences: 10, syllables: 174, characters: 605,
  avgWordsPerSentence: 13, avgSyllablesPerWord: 1.34,
  fleschReadingEase: 80.4, fleschKincaidGrade: 5.3,
  readingTimeMinutes: 0.7, readingTimeText: "39 sec",
  easeLabel: "Easy (6th grade)"
}

Use-o para mostrar um índice ao lado do editor ou para avisar antes da publicação; nada no documento é alterado. editor.countSyllables(word) retorna a estimativa de sílabas de uma palavra.

Como os números são calculados

  • As palavras são o texto dividido nos espaços. As frases são trechos que terminam em ., ! ou ?; um texto sem nenhum desses sinais conta como uma frase. Os caracteres não incluem espaços.
  • Reading Ease = 206.835 − 1.015 × (palavras por frase) − 84.6 × (sílabas por palavra). Grade = 0.39 × (palavras por frase) + 11.8 × (sílabas por palavra) − 15.59, nunca abaixo de 0.
  • O rótulo segue as faixas usuais de Flesch: 90 ou mais "Very easy (5th grade)", 80 "Easy (6th grade)", 70 "Fairly easy (7th grade)", 60 "Standard (8–9th grade)", 50 "Fairly difficult (10–12th grade)", 30 "Difficult (college)", abaixo de 30 "Very difficult (college graduate)".

O que você precisa saber

  • As fórmulas e o contador de sílabas são para o inglês. O contador só olha as letras a–z; por isso, para outros idiomas, e para palavras com acentos, os índices pouco significam.
  • As sílabas são estimadas a partir de grupos de vogais, então algumas palavras ficam com uma a mais ou a menos (ele conta "timetables" como 4).
  • Um título ou item de lista sem ponto final é contado como parte da frase seguinte. O artigo da imagem tem um título e dez frases, e o resultado é 10.
  • A caixa de diálogo arredonda o tempo para um décimo de minuto antes de converter em segundos; por isso, ele pode diferir de readingTimeText: 42 sec na caixa de diálogo e "39 sec" no método, para o mesmo texto.
  • Os rótulos da caixa de diálogo vêm de chaves de idioma (text_readabilitytitle, text_rd_ease, text_rd_grade e as outras chaves text_rd_*). Os valores easeLabel e readingTimeText retornados pelo método estão sempre em inglês.

Relacionados: demonstração de contagem de palavras, demonstração de assistência à escrita, execCommand.