WCAG 2.2 success criterion 3.1.2, Language of Parts, is a Level AA requirement: passages in another language are marked with their language.
Read the criterion in the W3C Recommendation, WCAG 2.2 (opens in a new tab).
How BearScan checks it
Passages in another language are marked with their language
Checked automatically: loads the page in a browser. Severity: medium. A screen reader reads a French quotation on an English page with English pronunciation, which is often unintelligible.
An approximation: axe-core's valid-lang fails lang attributes that are not real language codes. The page's blocks of text (up to 300 distinct ones per scan) are each read by a decisions model (TypeSafe's Jev) for whether they are in the language the page declares; a passage in another language with no lang attribute fails at 80% or more, and so does one whose lang attribute names a language it is not written in. Proper names, brands, technical terms and single borrowed words are exempt, as WCAG exempts them. A page with no declared language has nothing to compare against (see 3.1.1).
How to fix it. Wrap each passage in a different language in an element with a valid lang attribute, for example <span lang="fr">. Proper names and words that have entered the surrounding language are exempt.
All WCAG 2.2 criteria · Next: 3.2.1 On Focus
Questions
Is WCAG 3.1.2 required by the ADA?
The ADA doesn't name a technical standard for businesses, but the Justice Department's 2022 guidance points businesses to WCAG, and its 2024 rule for state and local governments adopted WCAG 2.1 Level AA, which includes 3.1.2.
Can an automated tool check WCAG 3.1.2?
Mostly. BearScan checks it automatically (loads the page in a browser). A clean result still isn't proof every page passes, only the pages scanned.
How do I fix a WCAG 3.1.2 failure?
Wrap each passage in a different language in an element with a valid lang attribute, for example <span lang="fr">. Proper names and words that have entered the surrounding language are exempt.