erblint-github 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e46c63a275b6e7d34b0aab81c0de051625bfbd7fc6c3fedb944a6d10a5ba3cff
4
- data.tar.gz: 33984e9857ae9a998a3ae56a9fd29c0bf89557d41eee3698cb13731327da7988
3
+ metadata.gz: 46d00ab6d8c5bc82e5ea9e42c316037af0509e6f16a107cfd7762c21bac5c762
4
+ data.tar.gz: 87f2785cf56cd632f122eb9ddb2e369298902737e281ca75de514fffa45de514
5
5
  SHA512:
6
- metadata.gz: 0404a048ebd068503aa1f7521a9c1f116165e3d9c507bee6e0a04c28ec3871b12fb53dc1141ff57981d013ac0af8d2bb41b21faea545c7741ff28f1d4e4c3b95
7
- data.tar.gz: c64a47d57b7bb87ed7f1437be1430f44f860f58e0d28a6acca5b530e442350e9d1e8f28d83fdf8230d731a0851e812f9ad82278bec964aefffdac16fc250a530
6
+ metadata.gz: efd49409b7c581f29c45bcc884279bfcff48baefa63ec7e53e028980589b33a87fa655e20a39bb919167cb078e27a6e07ab3c7f4323eec7b02f6d258e1a7f489
7
+ data.tar.gz: 24a5f6882e6795950545a47fb87c6e8950fc588976ffaa2c7135f9b363a642743f45ebc2e37ff9748360292249b5e36003c89dc8ec3adc6c77499ea12bc9336e
data/README.md CHANGED
@@ -23,6 +23,8 @@ require "erblint-github/linters"
23
23
  ```yaml
24
24
  ---
25
25
  linters:
26
+ GitHub::Accessibility::AvoidBothDisabledAndAriaDisabled:
27
+ enabled: true
26
28
  GitHub::Accessibility::ImageHasAlt:
27
29
  enabled: true
28
30
  GitHub::Accessibility::NoAriaLabelMisuse:
@@ -31,10 +33,11 @@ linters:
31
33
  enabled: true
32
34
  ```
33
35
 
34
- ### Rules
36
+ ## Rules
35
37
 
36
- - [GitHub::Accessibility::ImageHasAlt](./docs/rules/accessibility/no-aria-label-misuse.md)
37
- - [GitHub::Accessibility::NoAriaLabelMisuse](./docs/rules/accessibility/image-has-alt.md)
38
+ - [GitHub::Accessibility::AvoidBothDisabledAndAriaDisabled](./docs/rules/accessibility/avoid-both-disabled-and-aria-disabled.md)
39
+ - [GitHub::Accessibility::ImageHasAlt](./docs/rules/accessibility/image-has-alt.md)
40
+ - [GitHub::Accessibility::NoAriaLabelMisuse](./docs/rules/accessibility/no-aria-label-misuse.md)
38
41
  - [GitHub::Accessibility::NoRedundantImageAlt](./docs/rules/accessibility/no-redundant-image-alt.md)
39
42
 
40
43
  ## Testing
@@ -11,7 +11,7 @@ module ERBLint
11
11
  indicator_node, _, code_node, = *node
12
12
  indicator = indicator_node&.loc&.source
13
13
  comment = code_node&.loc&.source&.strip
14
- rule_name = self.class.name.gsub("ERBLint::Linters::", "")
14
+ rule_name = simple_class_name
15
15
 
16
16
  if indicator == "#" && comment.start_with?("erblint:disable") && comment.match(rule_name)
17
17
  if @offenses.any?
@@ -26,8 +26,8 @@ module ERBLint
26
26
 
27
27
  def generate_offense(klass, processed_source, tag, message = nil, replacement = nil)
28
28
  message ||= klass::MESSAGE
29
- klass_name = klass.name.demodulize
30
- offense = ["#{klass_name}:#{message}", tag.node.loc.source].join("\n")
29
+ message += "\nLearn more at https://github.com/github/erblint-github#rules.\n"
30
+ offense = ["#{simple_class_name}:#{message}", tag.node.loc.source].join("\n")
31
31
  add_offense(processed_source.to_source_range(tag.loc), offense, replacement)
32
32
  end
33
33
 
@@ -45,6 +45,10 @@ module ERBLint
45
45
  def tags(processed_source)
46
46
  processed_source.parser.nodes_with_type(:tag).map { |tag_node| BetterHtml::Tree::Tag.from_node(tag_node) }
47
47
  end
48
+
49
+ def simple_class_name
50
+ self.class.name.gsub("ERBLint::Linters::", "")
51
+ end
48
52
  end
49
53
  end
50
54
  end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../custom_helpers"
4
+
5
+ module ERBLint
6
+ module Linters
7
+ module GitHub
8
+ module Accessibility
9
+ class AvoidBothDisabledAndAriaDisabled < Linter
10
+ include ERBLint::Linters::CustomHelpers
11
+ include LinterRegistry
12
+
13
+ ELEMENTS_WITH_NATIVE_DISABLED_ATTRIBUTE_SUPPORT = %w[button fieldset input optgroup option select textarea].freeze
14
+ MESSAGE = "[aria-disabled] may be used in place of native HTML [disabled] to allow tab-focus on an otherwise ignored element. Setting both attributes is contradictory."
15
+
16
+ def run(processed_source)
17
+ tags(processed_source).each do |tag|
18
+ next if tag.closing?
19
+ next unless ELEMENTS_WITH_NATIVE_DISABLED_ATTRIBUTE_SUPPORT.include?(tag.name)
20
+ next unless tag.attributes["disabled"] && tag.attributes["aria-disabled"]
21
+
22
+ generate_offense(self.class, processed_source, tag)
23
+ end
24
+
25
+ rule_disabled?(processed_source)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :docs do
4
+ task :coverage do
5
+ require "erb_lint/all"
6
+ require "erblint-github/linters"
7
+
8
+ Dir[File.join(__dir__, "linters", "github/**/*.rb")].sort.each do |file|
9
+ rule_documentation_path = file
10
+ .gsub("#{__dir__}linters/github/", "docs/rules/")
11
+ .gsub(".rb", ".md")
12
+ .tr("_", "-")
13
+ raise "Missing rule documentation. Please document rule in #{rule_documentation_path}" unless File.file?(rule_documentation_path.to_s)
14
+ end
15
+ puts "All rules have been properly documented."
16
+ end
17
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: erblint-github
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub Open Source
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-01 00:00:00.000000000 Z
11
+ date: 2021-12-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: erb_lint
@@ -105,9 +105,11 @@ files:
105
105
  - README.md
106
106
  - lib/erblint-github/linters.rb
107
107
  - lib/erblint-github/linters/custom_helpers.rb
108
+ - lib/erblint-github/linters/github/accessibility/avoid_both_disabled_and_aria_disabled.rb
108
109
  - lib/erblint-github/linters/github/accessibility/image_has_alt.rb
109
110
  - lib/erblint-github/linters/github/accessibility/no_aria_label_misuse.rb
110
111
  - lib/erblint-github/linters/github/accessibility/no_redundant_image_alt.rb
112
+ - lib/tasks/docs.rake
111
113
  homepage: https://github.com/github/erblint-github
112
114
  licenses:
113
115
  - MIT
@@ -127,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
129
  - !ruby/object:Gem::Version
128
130
  version: '0'
129
131
  requirements: []
130
- rubygems_version: 3.0.3
132
+ rubygems_version: 3.2.32
131
133
  signing_key:
132
134
  specification_version: 4
133
135
  summary: erblint GitHub