[]
SpreadJS는 Windows Narrator, NVDA(NonVisual Desktop Access), macOS VoiceOver와 같은 화면 읽기 프로그램(screen reader)을 사용하는 사용자를 위한 선택적 접근성 지원 기능을 제공합니다.
동작 방식은 사용하는 화면 읽기 프로그램 및 브라우저 조합에 따라 달라질 수 있습니다.
접근성 기능은 기본적으로 비활성화되어 있습니다.
접근성이 활성화되지 않은 경우 화면 읽기 프로그램은 SpreadJS 콘텐츠를 읽어주지 않습니다.
접근성 지원을 활성화하려면 다음과 같이 설정합니다.
spread.options.enableAccessibility = true;다음 사례는 내부 테스트 중 확인된 내용으로, 다양한 사용자 동작 및 UI 영역이 화면 읽기 프로그램에서 어떻게 안내되는지를 보여줍니다.
이 예시는 참고용으로 제공됩니다.
실제 동작은 사용하는 화면 읽기 프로그램 및 브라우저 조합에 따라 달라질 수 있습니다.
사례 | 화면 읽기 프로그램에서 읽는 텍스트 |
|---|---|
Tab 키를 눌러 셀 (0, 1)이 활성 셀이 되고 값이 | Cell(0, 1) has value "name" |
마우스가 뷰포트 영역의 셀 (0, 1)에 진입하고 값이 | Cell(0, 1) has value "name" |
마우스가 열 머리글 영역의 셀 (0, 1)에 진입하고 값이 | Column header Cell(0, 1) has value "name" |
마우스가 행 머리글 영역의 셀 (1, 0)에 진입하고 값이 | Row header Cell(1, 0) has value "name" |
마우스가 탭 스트립의 크기 조정 막대 영역에 진입한 경우 | Resize |
마우스가 탭 스트립의 첫 번째 영역에 진입한 경우 | First |
마우스가 탭 스트립의 이전 화살표 영역에 진입한 경우 | Previous arrow |
마우스가 탭 스트립의 다음 화살표 영역에 진입한 경우 | Next arrow |
마우스가 탭 스트립의 마지막 영역에 진입한 경우 | Last |
마우스가 탭 스트립의 이전 버튼 영역에 진입한 경우 | Previous button |
마우스가 탭 스트립의 다음 버튼 영역에 진입한 경우 | Next button |
마우스가 탭 스트립의 시트 탭 영역에 진입하고 이름이 | Sheet tab "Sheet1" |
마우스가 탭 스트립의 새 시트 영역에 진입한 경우 | New sheet |
마우스가 탭 스트립의 빈 영역에 진입한 경우 | Blank |
마우스가 가로 스크롤 막대의 왼쪽 버튼 영역에 진입한 경우 | Scrollbar left button |
마우스가 세로 스크롤 막대의 위쪽 버튼 영역에 진입한 경우 | Scrollbar top button |
마우스가 스크롤 막대의 Thumb 버튼 영역에 진입한 경우 | Scrollbar thumb button |
마우스가 가로 스크롤 막대의 오른쪽 버튼 영역에 진입한 경우 | Scrollbar right button |
마우스가 세로 스크롤 막대의 아래쪽 버튼 영역에 진입한 경우 | Scrollbar bottom button |
SpreadJS가 포함된 페이지가 활성 브라우저 탭이며 활성 셀이 값 | Cell(0, 1) has value "name" |
SpreadJS는 다양한 수준에서 대체 텍스트(Alternative Text)를 지원합니다.
이 메커니즘들은 서로 독립적으로 동작합니다.
셀 대체 텍스트는 화면 읽기 프로그램이 셀을 읽는 방식을 사용자 지정합니다.
정렬, 필터링, 수식 또는 검색에는 영향을 주지 않습니다.
다음 API를 사용하여 셀 대체 텍스트를 설정하거나 가져올 수 있습니다.
CellRange.altText()
Worksheet.setAltText()
Worksheet.getAltText()
예제:
activeSheet.getCell(0, 0).altText("Set alternative text for the cell");
console.log(activeSheet.getCell(0, 0).altText());SpreadJS는 .ssjson 및 .sjs 형식에서 셀 대체 텍스트의 직렬화 및 역직렬화를 지원합니다.
StorageType.altText 열거형을 사용하여 대체 텍스트를 지울 수 있습니다.
activeSheet.clear(0, 0, 3, 3,
GC.Spread.Sheets.SheetArea.viewport,
GC.Spread.Sheets.StorageType.altText);또한 CopyToOptions.altText를 사용하여 대체 텍스트를 복사할 수 있습니다.
제한 사항: 행, 열 및 워크시트 수준에서는 대체 텍스트를 지원하지 않습니다.
그림, 차트, 도형, 연결선과 같은 그래픽 개체의 경우 alt() 메서드를 사용하여 대체 텍스트를 설정할 수 있습니다.
예제:
picture.alt("This is a mango image");
chart.alt("This is a column chart");
shape.alt("This is a cloud shape");이 대체 텍스트는 접근성 지원에 사용됩니다.
SpreadJS 디자이너도 접근성을 지원합니다.
디자이너에서 접근성을 활성화하려면:
Settings → General → Spread Settings로 이동합니다.

Enable Accessibility를 선택합니다.

접근성이 활성화된 경우 셀 컨텍스트 메뉴의 Alternative Text… 옵션을 통해 셀 대체 텍스트를 확인하거나 수정할 수 있습니다.

화면 읽기 프로그램 | 브라우저 | Tab 키 | 마우스 오버 | 활성 탭 |
|---|---|---|---|---|
NVDA (Windows) | Chrome | 지원 | 지원 | 지원 |
NVDA (Windows) | Firefox | 지원 | 지원 | 미지원 |
NVDA (Windows) | Chromium Edge | 지원 | 지원 | 미지원 |
NVDA (Windows) | Edge | 미지원 | 미지원 | 미지원 |
NVDA (Windows) | IE | 미지원 | 미지원 | 미지원 |
Windows Narrator | Chrome | 지원 | 지원 | 미지원 |
Windows Narrator | Firefox | 지원 | 지원 | 미지원 |
Windows Narrator | Chromium Edge | 지원 | 지원 | 미지원 |
Windows Narrator | Edge | 지원 | 미지원 | 미지원 |
Windows Narrator | IE | 지원 | 미지원 | 미지원 |
VoiceOver (macOS) | Chrome | 제한적으로 지원 | 제한적으로 지원 | 미지원 |
VoiceOver (macOS) | Safari | 제한적으로 지원 | 제한적으로 지원 | 미지원 |
VoiceOver는 div 요소에 콘텐츠가 포함되어 있는 경우 aria-label 속성을 무시합니다.
VoiceOver는 동적으로 업데이트되는 aria-label 속성을 인식하지 못합니다.
VoiceOver는 탭 스트립, 스크롤 막대 및 그림, 차트, 도형과 같은 그래픽 개체를 인식하지 못합니다.
동작 방식은 사용하는 화면 읽기 프로그램 및 브라우저에 따라 달라질 수 있습니다.
드래그 채우기 또는 필터링과 같은 마우스/터치 기반 UI 작업은 화면 읽기 프로그램에서 사용하기 어려울 수 있습니다.
접근성 지원은 기본 기능 수준으로 제공됩니다.