Skip to content

[ESLint][EuiToolTip] Add ESLint rules for tooltip best practices#9635

Open
weronikaolejniczak wants to merge 3 commits intoelastic:mainfrom
weronikaolejniczak:feat/tooltip-eslint-rules
Open

[ESLint][EuiToolTip] Add ESLint rules for tooltip best practices#9635
weronikaolejniczak wants to merge 3 commits intoelastic:mainfrom
weronikaolejniczak:feat/tooltip-eslint-rules

Conversation

@weronikaolejniczak
Copy link
Copy Markdown
Contributor

@weronikaolejniczak weronikaolejniczak commented May 5, 2026

Summary

API Changes

N/A

Screenshots

N/A

Impact Assessment

Note: Most PRs should be tested in Kibana to help gauge their Impact before merging.

  • 🔴 Breaking changes — What will break? How many usages in Kibana/Cloud UI are impacted?
  • 💅 Visual changes — May impact style overrides; could require visual testing. Explain and estimate impact.
  • 🧪 Test impact — May break functional or snapshot tests (e.g., HTML structure, class names, default values).
  • 🔧 Hard to integrate — If changes require substantial updates to Kibana, please stage the changes and link them here.

Impact level: 🟢 None

Release Readiness

  • Documentation: {link to docs page(s)}
  • Figma: {link to Figma or issue}
  • Migration guide: {steps or link, for breaking/visual changes or deprecations}
  • Adoption plan (new features): {link to issue/doc or outline who will integrate this and where}

QA instructions for reviewer

  • Verify tests are passing locally: yarn workspace @elastic/eslint-plugin-eui test
  • Verify that both rules are comprehensive
PASS src/rules/a11y/tooltip_no_interactive_content.test.ts
PASS src/rules/a11y/require_aria_label_for_modals.test.ts
PASS src/rules/a11y/no_unnamed_interactive_element.test.ts
PASS src/rules/a11y/tooltip_focusable_anchor.test.ts
PASS src/rules/a11y/consistent_is_invalid_props.test.ts
PASS src/rules/prefer_tooltip_trigger_focus_test_utility.test.ts
PASS src/rules/a11y/tooltip_button_icon_wrap.test.ts
PASS src/rules/no_static_z_index.test.ts
PASS src/rules/a11y/callout_announce_on_mount.test.ts
PASS src/rules/no_css_color.test.ts
PASS src/rules/href_or_on_click.test.ts
PASS src/rules/no_restricted_eui_imports.test.ts
PASS src/rules/a11y/prefer_eui_icon_tip.test.ts
PASS src/rules/a11y/sr_output_disabled_tooltip.test.ts
PASS src/rules/a11y/icon_accessibility_rules.test.ts
PASS src/rules/a11y/badge_accessibility_rules.test.ts
PASS src/rules/a11y/no_unnamed_radio_group.test.ts
PASS src/rules/a11y/require_table_caption.test.ts
PASS src/rules/a11y/accessible_interactive_elements.test.ts

Test Suites: 19 passed, 19 total
Tests:       229 passed, 229 total
Snapshots:   0 total
Time:        4.024 s
Ran all test suites matching /src/i.

Checklist before marking Ready for Review

Reviewer checklist

  • Approved Impact Assessment — Acceptable to merge given the consumer impact.
  • Approved Release Readiness — Docs, Figma, and migration info are sufficient to ship.

@weronikaolejniczak weronikaolejniczak self-assigned this May 5, 2026
@weronikaolejniczak weronikaolejniczak force-pushed the feat/tooltip-eslint-rules branch from 5f88551 to 0ee7d72 Compare May 5, 2026 09:33
@weronikaolejniczak weronikaolejniczak force-pushed the feat/tooltip-eslint-rules branch from 0ee7d72 to 2803da0 Compare May 6, 2026 15:02
@weronikaolejniczak weronikaolejniczak marked this pull request as ready for review May 6, 2026 15:04
@weronikaolejniczak weronikaolejniczak requested a review from a team as a code owner May 6, 2026 15:04
Copilot AI review requested due to automatic review settings May 6, 2026 15:04
@elasticmachine
Copy link
Copy Markdown
Collaborator

💚 Build Succeeded

History

cc @weronikaolejniczak

@elasticmachine
Copy link
Copy Markdown
Collaborator

💚 Build Succeeded

History

cc @weronikaolejniczak

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ESLint] Add a rule about wrapping EuiButtonIcon with EuiToolTip [ESLint] Add a rule for EuiToolTip to enforce non-interactive content

2 participants