This wiki has been archived and is now read-only.


From Automated WCAG Monitoring Community Group
Jump to: navigation, search

This test belongs to 3.1.2 Language of Parts.


Version 1

Previous versions

Version 0: For review

Version 0.1: For review


This test checks that lang attributes within the body of a web page are correct.



  • The comparison of language-code does not look for exact matches. Technique H57 states: "Use of the primary code is important for this technique." which means that region subtags can be ignored in the comparison, i.e. "en-GB" is the same as "en".
  • This test checks the lang attributes. The xml:lang attributes are not taken into account because tests have shown, that xml:lang is ignored by screenreaders. (Both Jaws 15 with FF and IE and NVDA with FF go by lang attribute, xml:lang is ignored.) The xml:lang attributes are checked by a separate test: SC3-1-2-xml-lang.

Test properties

Property Possible values
Test name Languages within the body
Success Criterion 3.1.2 Language of Parts
Test mode automatic
Test environment DOM
Test subject single web page
User expertise and skills
User profile

Test procedure


Test mode: earl:automatic

This test is applied to all elements with lang attribute in the body of the web page (including the body element itself).

Step 1

Test mode: earl:automatic

L1 = value of lang attribute.

Compare L1 to BCP 47.

If L1 is not on the list, return

Property Value
TestCase SC312-lang
Identifier SC312-lang-fail1
Outcome failed
ErrorMessage Unknown language code.
Pointer position
Info L1

Note that this step also fails if L1 contains only whitespace or is empty.

Else, return

Property Value
TestCase SC312-lang
Identifier SC312-lang-pass1
Outcome passed
Pointer position