Rules
JavaScript
Rule semantics and descriptions taken from ESLint. See individual rule docs for direct references.
noArguments
disallow the use of `arguments`noAsyncPromiseExecutor
disallow using an async function as a Promise executornoCatchAssign
disallow reassigning exceptions in `catch` clausesnoCommaOperator
disallow comma operatorsnoCompareNegZero
disallow comparing against `-0`noCondAssign
disallow assignment operators in conditional expressionsnoDebugger
disallow the use of `debugger`noDelete
disallow the use of the `delete` operatornoDeleteVars
disallow deleting variablesnoDoubleEquals
require the use of `===` and `!==`noDupeArgs
disallow duplicate arguments in `function` definitionsnoDuplicateCase
disallow duplicate case labelsnoDuplicateImportSource
disallow several import statements for a modulenoDuplicateKeys
disallow duplicate keys in object literalsnoEmptyBlocks
disallow empty block statementsnoExtraBooleanCast
disallow unnecessary boolean castsnoFunctionAssign
disallow reassigning `function` declarationsnoGetterReturn
enforce `return` statements in gettersnoImportAssign
disallow assigning to imported bindingsnoLabelVar
disallow labels that share a name with a variablenoNegationElse
MISSING DOCUMENTATIONnoNestedTernary
disallow nested ternary expressionsnoRestrictedGlobals
disallow certain global variablesnoSetterReturn
disallow returning values from settersnoShadowRestrictedNames
disallow identifiers from shadowing restricted namesnoShoutyConstants
MISSING DOCUMENTATIONnoSingleCharRegexAlternatives
disallow the use of single character alternations in regular expressionsnoSparseArray
disallow sparse arraysnoTemplateCurlyInString
disallow template literal placeholder syntax in regular stringsnoUndeclaredVariables
MISSING DOCUMENTATIONnoUnnecessaryContinue
disallow unnecessary `continue` statements inside loopsnoUnsafeFinally
disallow control flow statements in `finally` blocksnoUnsafeNegation
disallow negating the left operand of relational operatorsnoUnusedTemplateLiteral
MISSING DOCUMENTATIONnoUnusedVariables
disallow unused variablesnoVar
require `let` or `const` instead of `var`preferOptionalChaining
MISSING DOCUMENTATIONuseBlockStatements
MISSING DOCUMENTATIONuseCamelCase
enforce camelcase naming conventionuseDefaultExportBasename
MISSING DOCUMENTATIONuseDefaultImportBasename
MISSING DOCUMENTATIONuseFunctionDeclarations
MISSING DOCUMENTATIONuseSimplifiedLogicalExpression
discard redundant terms from logical expressionsuseSingleCaseStatement
MISSING DOCUMENTATIONuseSingleVarDeclarator
MISSING DOCUMENTATIONuseSortedSpecifiers
MISSING DOCUMENTATIONuseTemplate
require template literals instead of string concatenationuseWhile
MISSING DOCUMENTATIONTypeScript
noExplicitAny
it bans the use of `any`preferShorthandArrayType
promotes the use of `[]` over `Array<>`useInterfaces
MISSING DOCUMENTATIONuseSimplifiedBooleanExpression
discard redundant terms or operators in boolean expressionsAccessibility (JSX and HTML)
Rule semantics and descriptions taken from eslint-plugin-jsx-a11y and axe Linter. See individual rule docs for direct references.
noAriaUnsupportedElements
enforce that elements that do not support ARIA roles, states, and properties do not have those attributesnoDistractingElements
enforce distracting elements are not usednoNoninteractiveElementToInteractiveRole
non-interactive elements should not be assigned interactive rolesnoNoninteractiveTabindex
MISSING DOCUMENTATIONnoSvgWithoutTitle
MISSING DOCUMENTATIONuseAltText
Checks that images have a valid alternative textuseAriaProptypes
enforce ARIA state and property values are validuseHtmlLang
the `lang` attribute is mandatoryuseIframeTitle
enforce `iframe` elements have a title attributeuseMediaCaption
enforces that `audio` and `video` elements must have a `track` for captionsuseValidLang
check if `lang` attribute is validJSX Accessibility
Rule semantics and descriptions taken from eslint-plugin-jsx-a11y. See individual rule docs for direct references.
noAccessKey
enforce that the `accessKey` prop is not used on any element to avoid complications with keyboard commands used by a screenreadernoAutofocus
discourage the usage of `autoFocus`noHeaderScope
enforce scope prop is only used on `th` elementsnoOnChange
discourage the usage of `onChange`noPositiveTabindex
enforce tabIndex value is not greater than zeronoRedundantAlt
enforce `img` alt prop does not contain the word "image", "picture", or "photo"noRedundantRoles
enforce explicit role property is not the same as implicit/default role property on elementnoTargetBlank
Prevent usage of unsafe `target="_blank"`useAnchorContent
enforce that anchors have content and that the content is accessible to screen readersuseAriaProps
enforce all `aria-*` props are validuseAriaPropsForRole
enforce that elements with ARIA roles must have all required attributes for that roleuseHeadingContent
enforce heading (`h1`, `h2`, etc) elements contain accessible contentuseKeyWithClickEvents
enforce a clickable non-interactive element has at least one keyboard event listener.useKeyWithMouseEvents
enforce that `onMouseOver`/`onMouseOut` are accompanied by `onFocus`/`onBlur` for keyboard-only usersuseValidAnchor
enforce all anchors are valid, navigable elementsReact
Rule semantics and descriptions taken from eslint-plugin-react. See individual rule docs for direct references.