Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit f8539b9

Browse filesBrowse files
authored
Merge pull request #115 from github/kh-fix-visually-hidden-bug
Simplify no-visually-hidden-interactive-elements and fix bug
2 parents bd72cdf + 946261f commit f8539b9
Copy full SHA for f8539b9

File tree

Expand file treeCollapse file tree

3 files changed

+8
-10
lines changed
Filter options
Expand file treeCollapse file tree

3 files changed

+8
-10
lines changed

‎README.md

Copy file name to clipboardExpand all lines: README.md
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ inherit_gem:
4141
- [GitHub::Accessibility::NoAriaLabelMisuse](./docs/rules/accessibility/no-aria-label-misuse.md)
4242
- [GitHub::Accessibility::NoPositiveTabIndex](./docs/rules/accessibility/no-positive-tab-index.md)
4343
- [GitHub::Accessibility::NoRedundantImageAlt](./docs/rules/accessibility/no-redundant-image-alt.md)
44+
- [GitHub::Accessibility::NoVisuallyHiddenInteractiveElements](./docs/rules/accessibility/no-visually-hidden-interactive-elements.md)
4445
- [GitHub::Accessibility::NoTitleAttribute](./docs/rules/accessibility/no-title-attribute.md)
4546
- [GitHub::Accessibility::SvgHasAccessibleText](./docs/rules/accessibility/svg-has-accessible-text.md)
4647

‎lib/erblint-github/linters/github/accessibility/no_visually_hidden_interactive_elements.rb

Copy file name to clipboardExpand all lines: lib/erblint-github/linters/github/accessibility/no_visually_hidden_interactive_elements.rb
+1-5Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,10 @@ class NoVisuallyHiddenInteractiveElements < Linter
1414
MESSAGE = "Avoid visually hidding interactive elements. Visually hiding interactive elements can be confusing to sighted keyboard users as it appears their focus has been lost when they navigate to the hidden element"
1515

1616
def run(processed_source)
17-
visually_hidden = false
18-
1917
tags(processed_source).each do |tag|
2018
next if tag.closing?
2119
classes = possible_attribute_values(tag, "class")
22-
visually_hidden = true if classes.include?("sr-only")
23-
next unless classes.include?("sr-only") || visually_hidden
24-
if INTERACTIVE_ELEMENTS.include?(tag.name)
20+
if classes.include?("sr-only") && INTERACTIVE_ELEMENTS.include?(tag.name)
2521
generate_offense(self.class, processed_source, tag)
2622
end
2723
end

‎test/linters/accessibility/no_visually_hidden_interactive_elements_test.rb

Copy file name to clipboardExpand all lines: test/linters/accessibility/no_visually_hidden_interactive_elements_test.rb
+6-5Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,13 @@ def test_does_not_warn_if_element_is_interactive_and_shown_on_focus
3838
assert_empty @linter.offenses
3939
end
4040

41-
def test_warn_if_element_is_interactive_in_a_visually_hidden_parent
42-
@file = "<div class='sr-only'><button>Submit</button></div>"
41+
def test_does_not_warn_on_unexpected_elements
42+
@file = <<~ERB
43+
<span class="sr-only"></span>
44+
<button></button>
45+
ERB
4346
@linter.run(processed_source)
4447

45-
assert_equal(1, @linter.offenses.count)
46-
error_messages = @linter.offenses.map(&:message).sort
47-
assert_match(/Avoid visually hidding interactive elements. Visually hiding interactive elements can be confusing to sighted keyboard users as it appears their focus has been lost when they navigate to the hidden element/, error_messages.last)
48+
assert_empty @linter.offenses
4849
end
4950
end

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.