ionic-team / ionic-team/ionic-framework

feat: Improve ion-reorder accessibility

オープン
#29,296 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る
type: feature request
主要言語
TypeScript
スター
52.7k
フォーク
13.3k
平均マージ
1日 15時間
マージ済み PR(30日)
51

説明

### Prerequisites

- [X] I have read the [Contributing Guidelines](https://github.com/ionic-team/ionic-framework/blob/main/.github/CONTRIBUTING.md#creating-an-issue).
- [X] I agree to follow the [Code of Conduct](https://ionicframework.com/code-of-conduct).
- [X] I have searched for [existing issues](https://github.com/ionic-team/ionic-framework/issues) that already include this feature request, without success.

### Describe the Feature Request

I'm not an accessibility expert so I might be wrong, but I think ion-reorder is not accessible. Some of the things that could be improved are:

- According to [WCAG 2.2 Success Criterion 2.5.7: Dragging Movements (Level AA)](https://www.w3.org/WAI/WCAG22/Understanding/dragging-movements), there should be an alternative using a "single pointer mode of operation without the need for the dexterity required to drag elements". I'm not sure what this means though. maybe there should be some arrows or similar to move the elements with clicks.
- Along with the previous point, maybe users should be able to move the elements using keyboard. I guess that if some arrows are added and they're clickable by keyboard, this point would be fulfilled too.
- When ion-reorder is just an "icon" (not using "Reorder Wrapper"), it would be nice if Ionic automatically calculated the aria-label of ion-reorder based on the item contents (unless it already has an aria-label, aria-labelledby or similar). I think other Ionic components do something similar. Also, I guess the aria-label should also explain how to move the item.
- When using Talkback and selecting the item's label (again, not using "Reorder Wrapper"), Talkback says "double tap to activate" but there is nothing to activate there.
- When an item is repositioned, I guess there should be some message in an "aria-live" element.

### Describe the Use Case

As a visual impaired user, I want to be able to use ion-reorder easily (using Talkback/Voiceover or a keyboard).

### Describe Preferred Solution

_No response_

### Describe Alternatives

_No response_

### Related Code

This is the template I used, in case it's helpful:

```

@for (item of items; track $index) {



{{ item.label }}




}

```

### Additional Information

_No response_

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。