Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: AccordionPanelのkeydownイベントリスナーをTriggerに移動 #5215

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

neet
Copy link
Collaborator

@neet neet commented Dec 20, 2024

関連URL

概要

従業員サーベイアプリにおいて、 AccordionPanel のコンテンツとして RadioButton を利用している箇所がありましたが、 その場合に矢印キーで項目を選択できなくなっていました。このPRでは、AccordionPanel内にインタラクティブな要素が配置されていた場合にも、キーボード操作ができるようにしました。

変更内容

TriggerとContentを包含する一番外側のラッパー要素に対して、keydownイベントリスナーが設定されており、そのハンドラ内で preventDefault() が実行されていたことが原因でした。本来は、矢印キー上下で複数の AccordionPanelItem 間を移動できるようにしていたものでしたが、アコーディオンが開かれていてContent内の要素を操作しているときでも、このハンドラが作動していました。

修正として、イベントリスナーを設定するのを、Trigger側の要素に変更しました。これによって、Content内を操作している場合には、キーボード操作ができるようになりました。

また、 KeyboardEvent#keyCode は非推奨となっていたため、 KeyboardEvent#key(接続されているキーボードの物理的なコードではなく、ユーザーが設定したキーボード配列に基づいた意味論的なコード)に移行しました。

確認方法

テストケースを用意したので、その内容に問題ないかを中心に確認いただきたいです。

Copy link

pkg-pr-new bot commented Dec 20, 2024

Open in Stackblitz

npm i https://pkg.pr.new/kufu/smarthr-ui@5215

commit: 1559731

@neet neet force-pushed the remove-accordion-panel-event-prevent branch 4 times, most recently from 92731ed to 636f8c1 Compare December 27, 2024 01:53
@neet neet force-pushed the remove-accordion-panel-event-prevent branch from 636f8c1 to 1559731 Compare December 27, 2024 02:01
@neet neet marked this pull request as ready for review December 27, 2024 02:11
@neet neet requested a review from a team as a code owner December 27, 2024 02:11
@neet neet requested review from misako0927 and s-sasaki-0529 and removed request for a team December 27, 2024 02:11
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.

1 participant