O with occluded right edge to appear also as a C Open Web Components Guides Docs Blog

EsLint Plugin Lit A11y: Overview

Accessibility linting plugin for lit-html.

Most of the rules are ported from eslint-plugin-jsx-a11y, and made to work with lit-html templates and custom elements.

Installation

You'll first need to install ESLint:

$ npm i eslint --save-dev

Next, install eslint-plugin-lit-a11y:

$ npm install eslint-plugin-lit-a11y --save-dev

Note: If you installed ESLint globally (using the -g flag) then you must also install eslint-plugin-lit-a11y globally.

Usage

Add lit-a11y to the plugins section of your .eslintrc configuration file. You can omit the eslint-plugin- prefix:

{
  "plugins": ["lit-a11y"]
}

Then configure the rules you want to use under the rules section.

{
  "rules": {
    "lit-a11y/rule-name": 2
  }
}

Configuration

You may also extend the recommended configuration like so:

{
  "extends": ["plugin:lit-a11y/recommended"]
}

By default, any tagged template literal that starts with html is linted. Example:

html` <img /> `;

It could be the case, however, that you're using multiple rendering libraries in a project, like for example htm, which also uses a html tagged template literal, but has a slightly different syntax than lit-html. In this case you can specify the following option, to make sure only lit-html tagged template literals are linted:

{
  "settings": {
    "litHtmlSources": true
  }
}

This will cause the plugin to lint only html tagged template literals that are imported from either 'lit-html' or 'lit-element'.

If you're importing lit-html from a package that re-exports lit-html, like for example @apollo-elements/lit-apollo, you can specify @apollo-elements/lit-apollo as a valid litHtmlSource like so:

{
  "settings": {
    "litHtmlSources": ["@apollo-elements/lit-apollo"]
  }
}

Supported Rules