Title: Benjamin Thiers Foreign Language Accessibility Detector
Author: Benjamin Thiers
Published: <strong>August 11, 2026</strong>
Last modified: August 11, 2026

---

Search plugins

![](https://ps.w.org/benjamin-thiers-foreign-language-accessibility-detector/assets/
icon-128x128.png?rev=3642165)

# Benjamin Thiers Foreign Language Accessibility Detector

 By [Benjamin Thiers](https://profiles.wordpress.org/bthiers/)

[Download](https://downloads.wordpress.org/plugin/benjamin-thiers-foreign-language-accessibility-detector.1.8.2.zip)

 * [Details](https://wordpress.org/plugins/benjamin-thiers-foreign-language-accessibility-detector/#description)
 * [Reviews](https://wordpress.org/plugins/benjamin-thiers-foreign-language-accessibility-detector/#reviews)
 *  [Installation](https://wordpress.org/plugins/benjamin-thiers-foreign-language-accessibility-detector/#installation)
 * [Development](https://wordpress.org/plugins/benjamin-thiers-foreign-language-accessibility-detector/#developers)

 [Support](https://wordpress.org/support/plugin/benjamin-thiers-foreign-language-accessibility-detector/)

## Description

This plugin adds a Language Detection menu to the WordPress admin area. From there,
you can select a post or page and see a preview of its content, with any foreign
language passages highlighted for you. The plugin currently recognizes five languages:
French, English, Spanish, German and Italian. A simple checklist lets you approve
or reject each highlighted passage one by one, so nothing is changed without your
review.

Once you approve a passage, it is permanently saved in the content as a span element
carrying the correct language attribute. This tells screen readers and other assistive
technology to switch to the right pronunciation for that piece of text, instead 
of reading it aloud as if it were written in the site main language. This directly
improves the accessibility of your content for people who rely on screen readers
or text to speech tools.

The plugin detects languages using a statistical method that looks at common letter
patterns, rather than sending your content to any outside website or service. Nothing
ever leaves your own server, and no data is shared with anyone.

Please note that the language attribute added by this plugin is invisible to regular
visitors. It has no effect on how the text looks on the page. Only the plugin admin
screen shows a colored highlight, so you can see and check which passages have been
detected.

Correctly identifying the language of text passages is one of the accessibility 
success criteria referenced by European accessibility regulation, which applies 
across the European Union. This plugin helps website owners address that specific
requirement.

#### Main features

 * An “Analyze Content” screen where you choose a post or page, see a highlighted
   preview, and approve or reject each passage one by one
 * Every change is saved as a normal WordPress revision, so you can always undo 
   it later
 * Detection of a single foreign word hidden inside an otherwise normal sentence,
   in addition to full sentences and longer passages
 * A custom glossary where you can teach the plugin extra words or short expressions
   and the language they belong to, which always takes priority over automatic detection
 * The plugin remembers which passages you rejected, so they will not be suggested
   again the next time you run an analysis on the same content
 * Works with content built using a page builder, in addition to the standard WordPress
   editor
 * Code blocks, preformatted text, scripts and styles are always left untouched
 * An optional automatic mode that marks passages live on the page without saving
   anything, switched off by default
 * An admin interface available in five languages: French, English, Spanish, German
   and Italian

#### A note on privacy

This plugin does not collect any personal data, does not set any cookies, and does
not send any information to outside websites or services. Every step of the language
detection process happens locally, on your own server, using dictionaries that are
bundled with the plugin itself.

## Screenshots

[[

## Installation

 1. Upload the `benjamin-thiers-foreign-language-accessibility-detector` folder to 
    the `/wp-content/plugins/` directory, or install the plugin directly from the WordPress
    plugin directory.
 2. Activate the plugin through the “Plugins” menu in WordPress.
 3. Go to the new “Language Detection” menu to analyze a piece of content.

## FAQ

### Does this plugin call any external service?

No. Language detection is performed locally using a bundled statistical library 
and dictionaries. No content is sent anywhere.

### Does the lang=”xx” attribute change how the text looks on the front end?

No. It is a purely semantic HTML attribute used by assistive technologies (screen
readers, text-to-speech). It has no visual effect for sighted visitors.

### What happens to content already validated if I deactivate or uninstall the plugin?

Passages already saved as `<span lang="xx">` directly in a post’s content remain
in that content after deactivation or uninstallation, since they were written into
the post content itself. Passages managed for page-builder content (stored as post
meta) will simply stop being applied once the plugin is deactivated.

### Can I add words or expressions that aren’t detected automatically?

Yes, using the custom glossary (term -> language). Terms added there always take
priority over automatic detection.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Benjamin Thiers Foreign Language Accessibility Detector” is open source software.
The following people have contributed to this plugin.

Contributors

 *   [ Benjamin Thiers ](https://profiles.wordpress.org/bthiers/)

[Translate “Benjamin Thiers Foreign Language Accessibility Detector” into your language.](https://translate.wordpress.org/projects/wp-plugins/benjamin-thiers-foreign-language-accessibility-detector)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/benjamin-thiers-foreign-language-accessibility-detector/),
check out the [SVN repository](https://plugins.svn.wordpress.org/benjamin-thiers-foreign-language-accessibility-detector/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/benjamin-thiers-foreign-language-accessibility-detector/)
by [RSS](https://plugins.trac.wordpress.org/log/benjamin-thiers-foreign-language-accessibility-detector/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.8.2

 * UX: added a contextual tip on the review checklist: when a whole sentence isn’t
   detected as a single block (only some of its words are flagged), it now suggests
   unchecking those words and adding the full sentence to the glossary instead, 
   so it’s recognized as one piece going forward.

#### 1.8.1

 * Fixed missing translations: the strings introduced by the last three features(
   page builder support, rejection memory, per-analysis language filter) were only
   available in English. All 4 languages (FR, DE, ES, IT) are now complete again.

#### 1.8.0

 * The “Analyze” page now lets you check/uncheck which foreign languages to search
   for, per analysis (independent from the global settings). Useful to avoid false
   positives such as a common English word being mistaken for another language when
   you know only one foreign language is actually present in the content.

#### 1.7.1

 * Bug fix: a rejected passage (unchecked then applied) had no persistent memory
   and would reappear as a “new” candidate on the very next analysis. Rejections
   are now remembered per content, excluded from future suggestions, with a button
   to undo if needed.

#### 1.7.0

 * New: support for page-builder content (e.g. Elementor) whose post_content is 
   not the rendering source. The plugin now fetches the actually rendered HTML in-
   process to analyze it, and stores validated passages as post meta instead of 
   writing into post_content. Classic content (Gutenberg/Classic Editor) is unaffected.
 * The “Analyze” page now shows an “Elementor” tag next to page-builder-managed 
   content in the search list.

#### 1.6.0

 * Admin interface translated into English, German, Spanish and Italian (in addition
   to French).

#### 1.5.0

 * Merging of nearby words detected in the same foreign language (e.g. “Small is
   beautiful”): up to 2 short undetected words between them no longer split the 
   expression into isolated pieces.

#### 1.4.0

 * On the “Analyze Content” page, already-flagged passages are now listed in read-
   only mode instead of showing the generic “no passage detected” message.
 * New dedicated “Glossary” page: add, sortable list, filter by language, free-text
   search, delete.

#### 1.3.1

 * Fix: re-running analysis/apply on already-corrected content could nest duplicate`
   <span lang="xx">` tags. Text already wrapped in an element carrying a lang attribute
   is now never re-analyzed.

#### 1.3.0

 * New: glossary of custom terms/expressions (term -> language), with priority over
   automatic detection.

#### 1.2.0

 * Word-by-word detection (frequency dictionaries, 5 x 40,000 words): catches an
   isolated foreign word slipped into a base-language sentence.
 * Content selector replaced by a search/autocomplete field (by title or ID), suited
   to sites with a lot of content.
 * New setting to enable/disable word-by-word detection.

#### 1.1.0

 * New: manual analysis and validation page, page by page.
 * Automatic mode becomes optional and is disabled by default.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.8.2**
 *  Last updated **22 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.0.3**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [a11y](https://wordpress.org/plugins/tags/a11y/)[accessibility](https://wordpress.org/plugins/tags/accessibility/)
   [language](https://wordpress.org/plugins/tags/language/)[screen reader](https://wordpress.org/plugins/tags/screen-reader/)
   [wcag](https://wordpress.org/plugins/tags/wcag/)
 *  [Advanced View](https://wordpress.org/plugins/benjamin-thiers-foreign-language-accessibility-detector/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/benjamin-thiers-foreign-language-accessibility-detector/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/benjamin-thiers-foreign-language-accessibility-detector/reviews/)

## Contributors

 *   [ Benjamin Thiers ](https://profiles.wordpress.org/bthiers/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/benjamin-thiers-foreign-language-accessibility-detector/)