From 17f73222a37d9dc6fe01548211fef8339f655d41 Mon Sep 17 00:00:00 2001
From: Hasegawa-Yukihiro <y.h.baskeeee@icloud.com>
Date: Wed, 11 Jun 2025 18:15:31 +0900
Subject: [PATCH 1/2] fix: remove 'focus' from EVENT_HANDLER_METHODS for
 consistency

---
 lib/utils/index.ts | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/lib/utils/index.ts b/lib/utils/index.ts
index aef73207..f5e094ea 100644
--- a/lib/utils/index.ts
+++ b/lib/utils/index.ts
@@ -114,13 +114,7 @@ const METHODS_RETURNING_NODES = [
 	'querySelectorAll',
 ] as const;
 
-const EVENT_HANDLER_METHODS = [
-	'click',
-	'focus',
-	'blur',
-	'select',
-	'submit',
-] as const;
+const EVENT_HANDLER_METHODS = ['click', 'blur', 'select', 'submit'] as const;
 
 const ALL_RETURNING_NODES = [
 	...PROPERTIES_RETURNING_NODES,

From c6c5cdb790cbc390d1717a0781a39d606c7d19db Mon Sep 17 00:00:00 2001
From: Hasegawa-Yukihiro <y.h.baskeeee@icloud.com>
Date: Wed, 11 Jun 2025 23:18:46 +0900
Subject: [PATCH 2/2] docs: update rule details and add Testing Library Guides
 section

---
 docs/rules/no-node-access.md | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/docs/rules/no-node-access.md b/docs/rules/no-node-access.md
index 4b79e961..0bb5d5a8 100644
--- a/docs/rules/no-node-access.md
+++ b/docs/rules/no-node-access.md
@@ -8,7 +8,11 @@ Disallow direct access or manipulation of DOM nodes in favor of Testing Library'
 
 ## Rule Details
 
-This rule aims to disallow direct access and manipulation of DOM nodes using native HTML properties and methods — including traversal (e.g. `closest`, `lastChild`) as well as direct actions (e.g. `click()`, `focus()`). Use Testing Library’s queries and userEvent APIs instead.
+This rule aims to disallow direct access and manipulation of DOM nodes using native HTML properties and methods — including traversal (e.g. `closest`, `lastChild`) as well as direct actions (e.g. `click()`, `select()`). Use Testing Library’s queries and userEvent APIs instead.
+
+> [!NOTE]
+> This rule does not report usage of `focus()`, because imperative focus (e.g. `getByText('focus me').focus()`) is recommended over `fireEvent.focus()`.
+> If an element is not focusable, related assertions will fail, leading to more robust tests. See [Testing Library Events Guide](https://testing-library.com/docs/guide-events/) for more details.
 
 Examples of **incorrect** code for this rule:
 
@@ -104,3 +108,7 @@ expect(container.firstChild).toMatchSnapshot();
 - [`Document`](https://developer.mozilla.org/en-US/docs/Web/API/Document)
 - [`Element`](https://developer.mozilla.org/en-US/docs/Web/API/Element)
 - [`Node`](https://developer.mozilla.org/en-US/docs/Web/API/Node)
+
+### Testing Library Guides
+
+- [Testing Library Events Guide](https://testing-library.com/docs/guide-events/)