fix: AccordionPanelのkeydownイベントリスナーをTriggerに移動 #5215
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
関連URL
概要
従業員サーベイアプリにおいて、
AccordionPanel
のコンテンツとしてRadioButton
を利用している箇所がありましたが、 その場合に矢印キーで項目を選択できなくなっていました。このPRでは、AccordionPanel内にインタラクティブな要素が配置されていた場合にも、キーボード操作ができるようにしました。変更内容
TriggerとContentを包含する一番外側のラッパー要素に対して、keydownイベントリスナーが設定されており、そのハンドラ内で
preventDefault()
が実行されていたことが原因でした。本来は、矢印キー上下で複数のAccordionPanelItem
間を移動できるようにしていたものでしたが、アコーディオンが開かれていてContent内の要素を操作しているときでも、このハンドラが作動していました。修正として、イベントリスナーを設定するのを、Trigger側の要素に変更しました。これによって、Content内を操作している場合には、キーボード操作ができるようになりました。
また、
KeyboardEvent#keyCode
は非推奨となっていたため、KeyboardEvent#key
(接続されているキーボードの物理的なコードではなく、ユーザーが設定したキーボード配列に基づいた意味論的なコード)に移行しました。確認方法
テストケースを用意したので、その内容に問題ないかを中心に確認いただきたいです。