Skip to content

Commit

Permalink
ざっくり内容を決める
Browse files Browse the repository at this point in the history
  • Loading branch information
ken7253 committed Jan 21, 2024
1 parent 52fe765 commit 0af0750
Showing 1 changed file with 105 additions and 0 deletions.
105 changes: 105 additions & 0 deletions the-tooltip/slides.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,108 @@ src: "../reuse/me.md"
---

---
layout: section
---

## TooltipとはどういうUIなのか

---

### TooltipとはどういうUIなのか

[ARIA Authoring Practices Guide](https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/) の説明が分かりやすい。

> A tooltip is a popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.
「ツールチップは、要素がキーボードフォーカスを受けたり、マウスカーソルをその上に置いたりしたときに、その要素に関連する情報を表示するポップアップです。」

---

## ツールチップで考慮しなければいけない点

- Machine readability
- Cancelability
- Selectivity

---

## 実装時の注意点

---

### Machine readability

- `role``aria-describedby`を設定する。
- フォーカス可能な要素を含む場合はモードレスダイアログとして実装する。

---

### Cancelability

`ESC`キーで一時的に非表示にできるようにする。

---

### Selectivity

イベントハンドラーを張る要素に気をつける。

---

### Selectivity

#### Bad

```tsx
<div>
<div role="tooltip" hidden={!open} id={id}>
{content}
</div>
<button aria-describedby={id} onPointerEnter={} onPointerLeave={}>
{children}
</button>
</div>
```

#### Good

```tsx
<div onPointerEnter={} onPointerLeave={}>
<div role="tooltip" hidden={!open} id={id}>
{content}
</div>
<button aria-describedby={id}>
{children}
</button>
</div>
```

---

### Selectivity

#### Bad

```tsx{5}
<div>
<div role="tooltip" hidden={!open} id={id}>
{content}
</div>
<button aria-describedby={id} onPointerEnter={} onPointerLeave={}>
{children}
</button>
</div>
```

#### Good

```tsx{1}
<div onPointerEnter={} onPointerLeave={}>
<div role="tooltip" hidden={!open} id={id}>
{content}
</div>
<button aria-describedby={id}>
{children}
</button>
</div>
```

0 comments on commit 0af0750

Please sign in to comment.