기본 제공 컨트롤을 사용하여 액세스 가능한 캔버스 앱을 디자인하고 빌드 할 수 있습니다. 경우에 따라 앱 디자인, 다양한 컨트롤 사용 및 구성된 컨트롤 속성의 조합으로 인해 앱에 액세스할 수 없는 사용자 인터페이스가 생성될 수 있습니다.
이 문서에서는 캔버스 앱의 이러한 접근성 제한 사항과 앱 인터페이스를 개선하여 접근성을 높이는 방법에 대해 알아봅니다.
대화 상자 및 오버레이
다른 콘텐츠 위에 표시되는 대화 상자 및 사용자 인터페이스는 지원되지 않습니다. 이러한 오버레이에는 포커스 관리, 화면 읽기 프로그램에서 배경 콘텐츠 숨기기 및 적절한 제어 역할이 필요합니다.
다음을 고려하십시오.
- 각 "대화 상자"에 대해 별도의 화면을 사용합니다.
- Notify 함수를 사용합니다.
- 액세스 가능한 대화 상자를 구현하는 코드 구성 요소를 만듭니다.
탭 인터페이스
탭 인터페이스는 탭 목록과 선택한 탭과 연결된 콘텐츠를 표시하는 패널로 구성됩니다.
탭 인터페이스를 지원하는 유일한 기본 제공 컨트롤은 Tab 목록입니다. 갤러리를 사용하여 탭을 만들지 않습니다. 탭 목록은 화살표 키를 사용하여 탐색할 수 있어야 합니다. 적절한 제어 역할 및 상태가 필요합니다.
다음을 고려하십시오.
- 기본 제공 탭 목록을 사용합니다.
- 액세스 가능한 탭 인터페이스를 구현하는 코드 구성 요소를 만듭니다.
사용자 지정 테이블
2차원 데이터를 지원하는 유일한 기본 제공 컨트롤은 데이터 테이블입니다. 갤러리를 사용하여 행과 열에 데이터를 표시하지 않습니다. 화면 읽기 프로그램 사용자가 구조를 이해하고 셀을 탐색할 수 있도록 행과 열에 주석을 추가해야 합니다.
다음을 고려하십시오.
- 기본 제공 데이터 테이블을 사용합니다.
- 갤러리를 사용하여 한 방향으로만 데이터를 표시합니다.
- 액세스 가능한 테이블을 구현하는 코드 구성 요소를 만듭니다.
사용자 지정 콤보 상자
텍스트 입력과 갤러리를 결합하여 콤보 상자를 에뮬레이트할 수 있습니다. 그러나 기본 제공 컨트롤에서 어셈블된 콤보 상자에는 액세스할 수 없습니다. 콤보 상자는 화살표 키를 처리하고 해당 구성 요소에 적절한 역할 및 상태를 설정해야 합니다.
다음을 고려하십시오.
- 기본 제공 콤보 상자 또는 드롭다운을 사용합니다.
- 액세스 가능한 콤보 상자를 구현하는 코드 구성 요소를 만듭니다.
스크롤 가능 콘텐츠
키보드 사용자는 내부에 대화형 컨트롤이 없으면 폼, 스크롤 가능한 화면 및 컨테이너 를 스크롤할 수 없습니다.
대화형 콘텐츠가 없는 갤러리의 경우 키보드 사용자가 갤러리에 집중하고 화살표 키를 사용하여 스크롤할 수 있도록 갤러리 자체에서 TabIndex를 설정할 수 있습니다.
레이블의 경우 TabIndex를 설정하면 키보드 스크롤에 포커스를 맞출 수 있습니다. 그러나 버튼으로도 바뀝니다. 레이블이 단추가 아닌 경우 스크롤 가능하도록 만들지 마세요. 레이블이 텍스트에 맞게 충분히 큰지 확인합니다. AutoHeight 속성을 사용하면 폼, 스크롤 가능 화면 또는 갤러리 내에 있을 때 컨트롤의 크기를 자동으로 조정할 수 있습니다.
확장 가능한 섹션
공개라고도 하는 확장 가능한 섹션에는 사용자가 단추를 누를 때까지 숨겨진 콘텐츠가 포함되어 있습니다. 이러한 요소에 대한 기본 제공 지원은 없지만 해결 방법이 있습니다.
단추의 AccessibleLabel 에서 확장된 상태를 언급합니다. 예를 들어 "자세한 내용을 표시합니다. 축소됨."입니다.
확장된 상태가 변경되면 AccessibleLabel 을 업데이트합니다. 화면 읽기 프로그램 사용자가 논리적으로 탐색할 수 있도록 확장된 콘텐츠를 단추 바로 옆에 배치합니다. 섹션이 확장되면 다른 콘텐츠를 아래로 푸시합니다.
랜드마크
레이블 컨트롤을 사용하여 제목을 만들 수 있습니다. 탐색, 배너 및 기타 랜드마크는 지원되지 않습니다. Power Apps는 자동으로 주요 랜드마크를 앱 화면으로 설정합니다.
다른 랜드마크의 경우 해결 방법으로 제목을 사용합니다.
사용자 지정 역할 및 상태
사용자 지정 역할 및 상태에 대한 기본 제공 지원은 없습니다. 따라서 기본 제공 컨트롤에서 복합 확인란, 슬라이더 및 토글을 만들지 않는 것이 좋습니다.
다음을 고려하십시오.
- AccessibleLabel에서 컨트롤의 역할 및 상태를 언급합니다. 예를 들어 아이콘 이 확인란으로 사용되는 경우 해당 레이블은 "알림 사용일 수 있습니다. 확인란. "확인함."
- WAI-ARIA 역할 및 상태를 적절하게 설정하는 코드 구성 요소를 만듭니다.
사용자 지정 키보드 처리
특정 키 누름에 반응할 수 없습니다. 예를 들어 화살표 키 또는 이스케이프 키에 대한 사용자 지정 동작을 가질 수 없습니다. 따라서 기본 제공 컨트롤에서 라디오 단추와 같은 목록과 같은 컨트롤을 작성할 수 없습니다. 이스케이프 키로 해제할 수 있는 오버레이를 만들 수도 없습니다.
OnSelect에서 Enter 키 또는 스페이스 키 처리가 지원됩니다. 그러나 이 속성은 마우스 클릭과 같은 다른 입력 메서드에 의해 트리거됩니다. 이벤트의 원본을 구분할 수 있는 방법은 없습니다.
포커스 관리
SetFocus 함수는 포커스를 변경하는 데 사용할 수 있지만 제한된 시나리오에서만 작동합니다.
컨트롤이 포커스를 받거나 분실하는 시기를 감지할 수 없습니다.
화면 읽기 프로그램 사용자에게만 콘텐츠 숨기기
시각적 사용자에게 콘텐츠를 보여주고 화면 읽기 프로그램 사용자에게 숨기는, 동일한 작용의 aria-hidden은 없습니다. 몇 가지 시나리오만 지원됩니다.