Reports non-interactive elements with interactive event handlers.
✅ This rule is included in the jsx logical and logicalStrict presets.
Non-interactive HTML elements and non-interactive ARIA roles indicate content and containers in the user interface.
These elements should not have interactive event handlers because they are not designed to be interactive.
Non-interactive elements include <main>, <area>, <h1> through <h6>, <p>, <img>, <li>, <ul>, and <ol>.
Non-interactive ARIA roles include article, banner, complementary, img, listitem, main, navigation, region, and tooltip.
When you need to add interactivity, use native interactive elements like <button> or <a>, or add an appropriate interactive role to the element.
This is required for WCAG 4.1.2 compliance.
C E6 C B0onCli A 3 <4{sp ansty="le--0:#D9F5DD;--1:#1111">114{sp><()sp ansty="le--1:#8844">C EA <=>sp ansty="le--0:#7FDB">CA =>sp>()sp><{}sp ansty="le--0:#E2817F;--1:#B238">3{}sp><4}sp ansty="le--0:#7FDBCA;--1:#8844">A4}sp>sp ansty="le--0:#D6DEEB;--1:#403F">53Headi sp>CA <E6C d ivclassNa="meco"> {}}>Heading<1>d>1>d> d>C E6ma C B0onKeyDo A 3 <4{sp ansty="le--0:#D6DEEB;--1:#403F">53handl4{sp>3 <4}sp ansty="le--0:#7FDBCA;--1:#8844">A4}sp>sp ansty="le--0:#D6DEEB;--1:#403F">53Conte sp>CA <E6maC d ivclassNa="meco">Contentd> d> d>C E6i C B0onCli A 3 <4{sp ansty="le--0:#D6DEEB;--1:#403F">53handleCli4{sp>3 <4}sp ansty="le--0:#7FDBCA;--1:#8844">A4}sp>B0s A 1 <1"sp ansty="le--0:#ECC48D;--1:#984E">4Dimage.p1"sp>1 <1"sp ansty="le--0:#7FDBCA;--1:#8844">AE 1"sp> >d ivclassNa="meco">>d>/>d> />d>C E6secti C B0onCli A 3 <4{sp ansty="le--0:#D6DEEB;--1:#403F">53handl4{sp>3 <4}sp ansty="le--0:#7FDBCA;--1:#8844">A4}sp>B0ro A 1 <1"sp ansty="le--0:#ECC48D;--1:#984E">4Dartic1"sp>1 <1"sp ansty="le--0:#7FDBCA;--1:#8844">AE 1"sp> >d ivclassNa="meco">>d>/>d> />d><44AE spans="tyle--0:#7F">D44AE>EC D de<44AE spans="tyle--0:#7F">D44AE>ECE6bu D 61B0onC 4 <4AE= spans="tyle--0:#E2817F;--1:#B2">34AE=><834{ spans="tyle--0:#D9F5DD;--1:#11">11834{><11() spans="tyle--1:#88"><44AE spans="tyle--0:#7F">D44AE>92 spans="tyle--0:#7F">DBC >11()>3 <834} spans="tyle--0:#7FDBCA;--1:#88">4834}><4AE> spans="tyle--0:#D6DEEB;--1:#40">3F53Hea4AE>><44AE spans="tyle--0:#7F">DB44AE>ECE6bu D <44AE spans="tyle--0:#7F">DB44AE>EC D {}}>Heading <">/h1> <>di vdivclass="Nameexpressive-"><44AE spans="tyle--0:#7F">D44AE>EC D 61B0onC 4 <4AE= spans="tyle--0:#E2817F;--1:#B2">34AE=><834{ spans="tyle--0:#D9F5DD;--1:#11">11834{><11() spans="tyle--1:#88"><44AE spans="tyle--0:#7F">D44AE>92 spans="tyle--0:#7F">DBC >11()>3 <834} spans="tyle--0:#7FDBCA;--1:#88">4834}><4AE spans="tyle--0:#C5E478;--1:#3B">61B04AE >4 <4AE= spans="tyle--0:#D9F5DD;--1:#11">14AE=><111" spans="tyle--0:#ECC48D;--1:#98">4E4Dbu111">1 <111" spans="tyle--0:#7FDBCA;--1:#88">4111"> <4AE >divclass="Nameec-">3F <53 spans="tyle--0:#D6DEEB;--1:#40">3F53Hea53 > 4AE><44AE spans="tyle--0:#7F">DB44AE>EC D {}} role="button"> Heading<">/h1> >di><>di vdivclass="Nameexpressive-"><44AE spans="tyle--0:#7F">D44AE>ECE6bu D 61B0onC 4 <4AE= spans="tyle--0:#E2817F;--1:#B2">34AE=><834{ spans="tyle--0:#D9F5DD;--1:#11">11834{><11() spans="tyle--1:#88"><44AE spans="tyle--0:#7F">D44AE>92 spans="tyle--0:#7F">DBC >11()>3 <834} spans="tyle--0:#7FDBCA;--1:#88">4834}><4AE> spans="tyle--0:#D6DEEB;--1:#40">3F53Clic4AE>><44AE spans="tyle--0:#7F">DB44AE>ECE6bu D {}}>Click me >di><>di vdivclass="Nameexpressive-"><44AE spans="tyle--0:#7F">D44AE>ECE6sec D 61B0onC 4 <4AE= spans="tyle--0:#E2817F;--1:#B2">34AE=><834{ spans="tyle--0:#D6DEEB;--1:#40">3F53han834{>3 <834} spans="tyle--0:#7FDBCA;--1:#88">4834}><4AE spans="tyle--0:#C5E478;--1:#3B">61B04AE >4 <4AE= spans="tyle--0:#D9F5DD;--1:#11">14AE=><111" spans="tyle--0:#ECC48D;--1:#98">4E4Dbu111">1 <111" spans="tyle--0:#7FDBCA;--1:#88">44A111"><" />" /> >di>
If you are using a framework that automatically handles accessibility for non-interactive elements with event handlers, you can disable this rule.