Open thibaudcolas opened 1 year ago
A quick dump of some of the tooling I have looked into for some similar checks for a work project.
Vale
is quite a solid tool, we have also looked at it for potentially automated Wagtail documentation checks. It's quite configurable, written in Go but has compiled packages for npm and pypi as a CLI interface. It would not be able to be run client-side only though. I do like the way they approach config, it's usage agnostic yml files (which, in theory, could be dynamically generated).retext
is part of a suite of tools (includes Prettier), all JS, quite a powerful ecosystem that includes lots of different checks across different languages.textlint
a similar set of tools for language / text checks but implemented in a very flexible way. The library and ecosystem is going through a bit of change though and some packages have not been updated in many years.Moving to Future. We’ve made progress on new designs, and decided to take the concept well beyond readability checks. Readability checks remain a key element of this but the capabilities need to be more generic. For further details, see Content quality checkers #11063.
With Content metrics in page editor - word count and reading time #12020, we’re close to having the mechanism by which we can analyse whole-page content to produce metrics like readability. Once that’s in place, adding new metrics will largely be a matter of:
We have quite a solid plan for the UI, but not for the readability metric calculation / formulas. We’ll need to go through available readability formulas, and I’d recommend we pick one that:
Good references:
To progress with this, I’d recommend to:
I've started some research on this 🙂
Linking to Annie’s research and my comments for future ref: https://github.com/wagtail/roadmap/pull/79.
Readability is fundamental to accessibility. One of the ways to improve text content is to have a clear target for reading level / reading age, which can be assessed with wagtail-readinglevel as a score displayed in rich text fields.