1.9.0 • Published 4 years ago

eslint-plugin-rn-a11y v1.9.0

Weekly downloads
86
License
MIT
Repository
github
Last release
4 years ago

eslint-plugin-rn-a11y

Check codecov tested with jest code style: prettier License: MIT

eslint-plugin-rn-a11y is ESLint plugin for Accessibility in React Native.
This is ported(some rules, utils) and extended eslint-plugin-react-native-a11y.

Install

yarn add -D eslint-plugin-rn-a11y

Configuration

This plugin has several presets.
They can be set to the extends property of eslintrc.

  • plugin:rn-a11y/basic: Common basic rules of iOS and Android.
  • plugin:rn-a11y/iOS: iOS-specific rules, includes basic.
  • plugin:rn-a11y/android: Android-specific rules, includes basic.
  • plugin:rn-a11y/wcag: WCAG2.x rules, includes basic.
  • plugin:rn-a11y/all: Includes basic, iOS, wcag, and android.

For example:

// eslintrc.js

module.exports = {
  /* ... */
  extends: ['plugin:rn-a11y/basic'],
  /* ... */
}

Supported Rules

See: Rules.

Options

Some rules have options. Check each rules for available options.
For example, to set the limit option with no-long-alt:

// eslintrc.js

module.exports = {
  /* ... */
  rules: {
    'rn-a11y/no-long-alt': [
      'error',
      {
        limit: 100,
      },
    ],
  },
  /* ... */
}

Set Custom Component Name

If you want to include custom components in rules, set the component name to rules in .eslintrc.js as shown below.
(When using TouchableXXX and Pressable, specify those as the Touchable property.)

// eslintrc.js

const Image = ['MyPict']
const Touchable = ['MyTouchableOpacity', 'MyPressable']

const CustomComponents = {
  Image,
  Touchable,
}

module.exports = {
  /* ... */
  rules: {
    'rn-a11y/no-nested-touchables': ['error', CustomComponents],
    'rn-a11y/touchable-has-alt': ['error', CustomComponents],
    'rn-a11y/no-long-alt': ['error', { ...CustomComponents, limit: 100 }], // if specifying rule options
  },
}

Custom component settings are for each rule. It cannot be set in common with other rules.

Support

  • Node: ^10.12.0 or above.
  • React Native: 0.57 or above.
  • ESLint: 6 or above.

This plugin is not compatible with less than React Native 0.57, please use eslint-plugin-react-native-a11y if using it.
React (not React Native) is not supported, please use eslint-plugin-jsx-a11y

Contribution

Contribution is welcome!

Please see Contribution Guide.

License

MIT

1.9.0

4 years ago

1.8.0

4 years ago

1.7.2

4 years ago

1.7.1

4 years ago

1.7.0

4 years ago

1.6.1

4 years ago

1.6.0

4 years ago

1.5.3

4 years ago

1.5.2

4 years ago

1.5.1

4 years ago

1.5.0

4 years ago

1.4.0

4 years ago

1.2.0

4 years ago

1.3.0

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago

0.0.1-security

4 years ago