No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

hace 3 años
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. 'use strict';
  2. /* eslint-disable global-require */
  3. module.exports = {
  4. rules: {
  5. 'accessible-emoji': require('./rules/accessible-emoji'),
  6. 'alt-text': require('./rules/alt-text'),
  7. 'anchor-has-content': require('./rules/anchor-has-content'),
  8. 'anchor-is-valid': require('./rules/anchor-is-valid'),
  9. 'aria-activedescendant-has-tabindex': require('./rules/aria-activedescendant-has-tabindex'),
  10. 'aria-props': require('./rules/aria-props'),
  11. 'aria-proptypes': require('./rules/aria-proptypes'),
  12. 'aria-role': require('./rules/aria-role'),
  13. 'aria-unsupported-elements': require('./rules/aria-unsupported-elements'),
  14. 'click-events-have-key-events': require('./rules/click-events-have-key-events'),
  15. 'heading-has-content': require('./rules/heading-has-content'),
  16. 'html-has-lang': require('./rules/html-has-lang'),
  17. 'iframe-has-title': require('./rules/iframe-has-title'),
  18. 'img-redundant-alt': require('./rules/img-redundant-alt'),
  19. 'interactive-supports-focus': require('./rules/interactive-supports-focus'),
  20. 'label-has-for': require('./rules/label-has-for'),
  21. 'label-has-associated-control': require('./rules/label-has-associated-control'),
  22. lang: require('./rules/lang'),
  23. 'media-has-caption': require('./rules/media-has-caption'),
  24. 'mouse-events-have-key-events': require('./rules/mouse-events-have-key-events'),
  25. 'no-access-key': require('./rules/no-access-key'),
  26. 'no-autofocus': require('./rules/no-autofocus'),
  27. 'no-distracting-elements': require('./rules/no-distracting-elements'),
  28. 'no-interactive-element-to-noninteractive-role': require('./rules/no-interactive-element-to-noninteractive-role'),
  29. 'no-noninteractive-element-interactions': require('./rules/no-noninteractive-element-interactions'),
  30. 'no-noninteractive-element-to-interactive-role': require('./rules/no-noninteractive-element-to-interactive-role'),
  31. 'no-noninteractive-tabindex': require('./rules/no-noninteractive-tabindex'),
  32. 'no-onchange': require('./rules/no-onchange'),
  33. 'no-redundant-roles': require('./rules/no-redundant-roles'),
  34. 'no-static-element-interactions': require('./rules/no-static-element-interactions'),
  35. 'role-has-required-aria-props': require('./rules/role-has-required-aria-props'),
  36. 'role-supports-aria-props': require('./rules/role-supports-aria-props'),
  37. scope: require('./rules/scope'),
  38. 'tabindex-no-positive': require('./rules/tabindex-no-positive')
  39. },
  40. configs: {
  41. recommended: {
  42. parserOptions: {
  43. ecmaFeatures: {
  44. jsx: true
  45. }
  46. },
  47. rules: {
  48. 'jsx-a11y/accessible-emoji': 'error',
  49. 'jsx-a11y/alt-text': 'error',
  50. 'jsx-a11y/anchor-has-content': 'error',
  51. 'jsx-a11y/anchor-is-valid': 'error',
  52. 'jsx-a11y/aria-activedescendant-has-tabindex': 'error',
  53. 'jsx-a11y/aria-props': 'error',
  54. 'jsx-a11y/aria-proptypes': 'error',
  55. 'jsx-a11y/aria-role': 'error',
  56. 'jsx-a11y/aria-unsupported-elements': 'error',
  57. 'jsx-a11y/click-events-have-key-events': 'error',
  58. 'jsx-a11y/heading-has-content': 'error',
  59. 'jsx-a11y/html-has-lang': 'error',
  60. 'jsx-a11y/iframe-has-title': 'error',
  61. 'jsx-a11y/img-redundant-alt': 'error',
  62. 'jsx-a11y/interactive-supports-focus': ['error', {
  63. tabbable: ['button', 'checkbox', 'link', 'searchbox', 'spinbutton', 'switch', 'textbox']
  64. }],
  65. 'jsx-a11y/label-has-for': 'error',
  66. 'jsx-a11y/label-has-associated-control': 'error',
  67. 'jsx-a11y/media-has-caption': 'error',
  68. 'jsx-a11y/mouse-events-have-key-events': 'error',
  69. 'jsx-a11y/no-access-key': 'error',
  70. 'jsx-a11y/no-autofocus': 'error',
  71. 'jsx-a11y/no-distracting-elements': 'error',
  72. 'jsx-a11y/no-interactive-element-to-noninteractive-role': ['error', {
  73. tr: ['none', 'presentation']
  74. }],
  75. 'jsx-a11y/no-noninteractive-element-interactions': ['error', {
  76. handlers: ['onClick', 'onError', 'onLoad', 'onMouseDown', 'onMouseUp', 'onKeyPress', 'onKeyDown', 'onKeyUp'],
  77. body: ['onError', 'onLoad'],
  78. iframe: ['onError', 'onLoad'],
  79. img: ['onError', 'onLoad']
  80. }],
  81. 'jsx-a11y/no-noninteractive-element-to-interactive-role': ['error', {
  82. ul: ['listbox', 'menu', 'menubar', 'radiogroup', 'tablist', 'tree', 'treegrid'],
  83. ol: ['listbox', 'menu', 'menubar', 'radiogroup', 'tablist', 'tree', 'treegrid'],
  84. li: ['menuitem', 'option', 'row', 'tab', 'treeitem'],
  85. table: ['grid'],
  86. td: ['gridcell']
  87. }],
  88. 'jsx-a11y/no-noninteractive-tabindex': ['error', {
  89. tags: [],
  90. roles: ['tabpanel']
  91. }],
  92. 'jsx-a11y/no-onchange': 'error',
  93. 'jsx-a11y/no-redundant-roles': 'error',
  94. 'jsx-a11y/no-static-element-interactions': ['error', {
  95. handlers: ['onClick', 'onMouseDown', 'onMouseUp', 'onKeyPress', 'onKeyDown', 'onKeyUp']
  96. }],
  97. 'jsx-a11y/role-has-required-aria-props': 'error',
  98. 'jsx-a11y/role-supports-aria-props': 'error',
  99. 'jsx-a11y/scope': 'error',
  100. 'jsx-a11y/tabindex-no-positive': 'error'
  101. }
  102. },
  103. strict: {
  104. parserOptions: {
  105. ecmaFeatures: {
  106. jsx: true
  107. }
  108. },
  109. rules: {
  110. 'jsx-a11y/accessible-emoji': 'error',
  111. 'jsx-a11y/alt-text': 'error',
  112. 'jsx-a11y/anchor-has-content': 'error',
  113. 'jsx-a11y/anchor-is-valid': 'error',
  114. 'jsx-a11y/aria-activedescendant-has-tabindex': 'error',
  115. 'jsx-a11y/aria-props': 'error',
  116. 'jsx-a11y/aria-proptypes': 'error',
  117. 'jsx-a11y/aria-role': 'error',
  118. 'jsx-a11y/aria-unsupported-elements': 'error',
  119. 'jsx-a11y/click-events-have-key-events': 'error',
  120. 'jsx-a11y/heading-has-content': 'error',
  121. 'jsx-a11y/html-has-lang': 'error',
  122. 'jsx-a11y/iframe-has-title': 'error',
  123. 'jsx-a11y/img-redundant-alt': 'error',
  124. 'jsx-a11y/interactive-supports-focus': ['error', {
  125. tabbable: ['button', 'checkbox', 'link', 'progressbar', 'searchbox', 'slider', 'spinbutton', 'switch', 'textbox']
  126. }],
  127. 'jsx-a11y/label-has-for': 'error',
  128. 'jsx-a11y/label-has-associated-control': 'error',
  129. 'jsx-a11y/media-has-caption': 'error',
  130. 'jsx-a11y/mouse-events-have-key-events': 'error',
  131. 'jsx-a11y/no-access-key': 'error',
  132. 'jsx-a11y/no-autofocus': 'error',
  133. 'jsx-a11y/no-distracting-elements': 'error',
  134. 'jsx-a11y/no-interactive-element-to-noninteractive-role': 'error',
  135. 'jsx-a11y/no-noninteractive-element-interactions': ['error', {
  136. body: ['onError', 'onLoad'],
  137. iframe: ['onError', 'onLoad'],
  138. img: ['onError', 'onLoad']
  139. }],
  140. 'jsx-a11y/no-noninteractive-element-to-interactive-role': 'error',
  141. 'jsx-a11y/no-noninteractive-tabindex': 'error',
  142. 'jsx-a11y/no-onchange': 'error',
  143. 'jsx-a11y/no-redundant-roles': 'error',
  144. 'jsx-a11y/no-static-element-interactions': 'error',
  145. 'jsx-a11y/role-has-required-aria-props': 'error',
  146. 'jsx-a11y/role-supports-aria-props': 'error',
  147. 'jsx-a11y/scope': 'error',
  148. 'jsx-a11y/tabindex-no-positive': 'error'
  149. }
  150. }
  151. }
  152. };