aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/design/004-text.md25
1 files changed, 25 insertions, 0 deletions
diff --git a/docs/design/004-text.md b/docs/design/004-text.md
index 3e4dc99..e86f590 100644
--- a/docs/design/004-text.md
+++ b/docs/design/004-text.md
@@ -150,3 +150,28 @@ advance, 오프셋 가운데 하나라도 다른 실행이 있으면 파일을 �
`vega-symbols paragraph`는 문단을 짜서 심볼로 그린다. 라틴(ffi·fi·fj 합자, AVAWA 커닝), 아랍(연결, lam-alef, 부호,
오른쪽 맞춤과 줄 사이의 순서), 히브리 부호, 섞인 문장(왼쪽에서 오른쪽 문장 안의 아랍 낱말과 괄호, 숫자)을 눈으로도 확인했다.
+## 접근성: 웹
+
+웹 표면은 말하기 표면(NUI)이 말하는 것을 화면 낭독기에도 준다.
+
+- 목록은 listbox다. 키보드 포커스를 가진 채로 남고, 포커스된 행이 그 목록의 활성 자손(`aria-activedescendant`)이다.
+ 화면 낭독기는 목록 안에서 선택이 옮겨 가는 것을 따라 읽는다.
+- 페이지는 들어가는 행만 그린다. 그래서 각 선택지가 목록 전체에서의 자리(`aria-posinset`, `aria-setsize`)를 안다. 천 개
+ 가운데 열두 개가 보여도 "12 가운데 3"이 아니라 "1000 가운데 437"로 읽힌다.
+- 표는 grid다. 행이 전체에서의 번호(`aria-rowindex`, `aria-rowcount`)를 가진다.
+- 보통과 흐림이 아닌 어조(강조, 좋음, 경고, 위험)는 색만이 아니라 말로도 붙는다. 말하기 표면과 같은 규칙이다.
+- 키는 이름 있는 단추다(`aria-keyshortcuts`). 글 입력은 그 입력의 이름을 가진다.
+- 다시 그릴 때 요소를 새로 만들지 않고 제자리에서 고친다. 전에는 갱신마다 목록을 새로 만들어 화면 낭독기가 쫓던 포커스가
+ 사라졌다(초마다 바뀌는 필드 하나가 목록을 초마다 다시 읽게 했다).
+
+확인은 Chromium의 접근성 트리로 한다(`tests/browser.mjs`, DevTools 프로토콜의 `Accessibility.getFullAXTree`).
+
+- 제목이 수준 1의 heading이다.
+- 목록이 뷰 이름을 가진 listbox이고 포커스를 가진다.
+- 선택지가 할 일들이고, 포커스된 것이 선택되어 활성 자손이다.
+- 위 화살표 뒤에도 같은 목록 노드가 포커스를 가진 채 활성 자손만 옮긴다.
+- 추가한 할 일이 "4 가운데 4"이다.
+- 한 일은 이름에 "done"이 들어간다.
+
+집합 안의 자리는 DevTools 트리에 없어서, Chromium이 플랫폼 접근성 API로 넘기는 속성으로 본다.
+