Skip to content

langValidity

Reports invalid lang attribute values.

✅ This rule is included in the jsx logical and logicalStrict presets.

The lang attribute must contain a valid BCP 47 language tag to properly identify the language of content for screen readers and assistive technologies. Invalid language tags can cause confusion for users who rely on assistive technologies.

Valid BCP 47 language tags consist of a primary language subtag (2-3 letters) optionally followed by script, region, and variant subtags.

This is required for WCAG 3.1.2 compliance.

CE6dCB0laA11<""sp ansty="le--0:#7FDBCA;--1:#8844">Asp ansty="le--0:#D6DEEB;--1:#403F">53Contesp>CA<E6dCd ivclassNa="meco">d>d>d>CE6dCB0laA1<1"sp ansty="le--0:#ECC48D;--1:#984E">41<1"sp ansty="le--0:#7FDBCA;--1:#8844">Asp ansty="le--0:#D6DEEB;--1:#403F">53Contesp>CA<E6dCd ivclassNa="meco">d>d>d>CE6dCB0laA1<1"sp ansty="le--0:#ECC48D;--1:#984E">4D1<23sp ansty="le--0:#D9F5DD;--1:#1111">1<1"sp ansty="le--0:#7FDBCA;--1:#8844">Asp ansty="le--0:#D6DEEB;--1:#403F">53Contesp>CA<E6dCd ivclassNa="meco">d>d>d>CE6htCB0laA1<1"sp ansty="le--0:#ECC48D;--1:#984E">4De1<1"sp ansty="le--0:#7FDBCA;--1:#8844">Asp ansty="le--0:#D6DEEB;--1:#403F">53Contesp>CA<E6htCd ivclassNa="meco">d>d>d>
<44AE spans="tyle--0:#7F">DECE<6div spans="tyle--0:#7F">D61B04<4AE= spans="tyle--0:#D9F5DD;--1:#11">1<111" spans="tyle--0:#ECC48D;--1:#98">4E<4Den spans="tyle--0:#D9F5DD;--1:#11">1<111" spans="tyle--0:#7FDBCA;--1:#88">4<4AE> spans="tyle--0:#D6DEEB;--1:#40">3F53Con><44AE spans="tyle--0:#7F">DBECE<6div spans="tyle--0:#7F">D
<>di vdivclass="Nameexpressive-"><44AE spans="tyle--0:#7F">DECE<6div spans="tyle--0:#7F">D61B04<4AE= spans="tyle--0:#D9F5DD;--1:#11">1<111" spans="tyle--0:#ECC48D;--1:#98">4E4De1<111" spans="tyle--0:#7FDBCA;--1:#88">4<4AE> spans="tyle--0:#D6DEEB;--1:#40">3F53Con><44AE spans="tyle--0:#7F">DBECE<6div spans="tyle--0:#7F">D
di><>di vdivclass="Nameexpressive-"><44AE spans="tyle--0:#7F">DECE<6div spans="tyle--0:#7F">D61B04<4AE= spans="tyle--0:#D9F5DD;--1:#11">1<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dzh-1<111" spans="tyle--0:#7FDBCA;--1:#88">4<4AE> spans="tyle--0:#D6DEEB;--1:#40">3F53Con><44AE spans="tyle--0:#7F">DBECE<6div spans="tyle--0:#7F">D
di><>di vdivclass="Nameexpressive-"><44AE spans="tyle--0:#7F">DECE<6div spans="tyle--0:#7F">D61B04<4AE= spans="tyle--0:#D9F5DD;--1:#11">1<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dzh-Han1<111" spans="tyle--0:#7FDBCA;--1:#88">4<4AE> spans="tyle--0:#D6DEEB;--1:#40">3F53Con><44AE spans="tyle--0:#7F">DBECE<6div spans="tyle--0:#7F">D
di><>di vdivclass="Nameexpressive-"><44AE spans="tyle--0:#7F">DECE<6div spans="tyle--0:#7F">D61B04<4AE= spans="tyle--0:#E2817F;--1:#B2">3<834{ spans="tyle--0:#D6DEEB;--1:#40">3F53lang3<834} spans="tyle--0:#7FDBCA;--1:#88">4<4AE> spans="tyle--0:#D6DEEB;--1:#40">3F53Con><44AE spans="tyle--0:#7F">DBECE<6div spans="tyle--0:#7F">D
di>

If you’re using a framework that manages language attributes automatically, you may want to disable this rule.