Accessibility 본문

3.1 누르기동작지원

터치 기반 모바일 기기의 모든 컨트롤은 누르기 동작(touch or tab)으로 제어할 수 있어야 한다.

필요성

시각장애인은 모바일 기기에서 가장 어려움을 많이 겪는 부분이 바로 컨트롤의 위치에 대한 부분이다. 특히 컨트롤을 이동해야 하는 경우나 컨트롤간의 위치를 바꾸어야 하는 경우 더욱더 어려움에 부닥치게 된다. 지체장애인 등의 경우 다중 누르기(Multi-touch) 슬라이드(Slide), 끌기와 놓기(Drag and drop) 등의 복잡한 동작을 수행하기 어려울 수 있다.

대상

지체장애

적용기술

복잡한 동작은 단순한 누르기 동작으로 대체하는 방법을 제공해야 함

iOS
슬라이더를 사용할 때 슬라이더의 값을 증가, 감소시키는 버튼을 함께 제공한다.
  • 슬라이더의 최소값, 최대값을 정하고 증가시키는 버튼, 감소시키는 버튼을 각각 만든다.
  • 각 버튼의 'Touch Up Inside'(눌렀다 뗐을 때) 메서드를 정의하여 슬라이더의 Value 값을 조절한다.
Interface Builder 를 사용하지 않을 경우
슬라이더의 최소값이 0이고, 최대값이 10일 때
[mySlider setMinimumValue:0.0];
[mySlider setMaximumValue:10.0];
[mySlider setValue:5.0];
슬라이더의 값을 증가시키는 버튼을 눌렀을 때 호출되는 메서드
- (IBAction)increaseValue:(id)sender {
int sliderValue = (int)(self.mySlider.value + 1.0);
if (sliderValue > self.mySlider.maximumValue) {
sliderValue = self.mySlider.maximumValue;
}
[self.mySlider setValue:sliderValue];
[self mySliderValueChanged:nil]; //슬라이더의 값이 바뀜으로써 호출되어야 할 함수
슬라이더의 값을 증가시키는 버튼을 눌렀을 때 호출되는 메서드
- (IBAction)decreaseValue:(id)sender {
int sliderValue = (int)(self.mySlider.value - 1.0);
if (sliderValue < self.mySlider.minimumValue) {
sliderValue = self.mySlider.minimumValue;
}
[self.mySlider setValue:sliderValue];
[self mySliderValueChanged:nil]; //슬라이더의 값이 바뀜으로써 호출되어야 할 함수
}
Android
자바 코드 예제
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mButtonUp = (Button)findViewById(R.id.buttonUp);
        mButtonDn = (Button)findViewById(R.id.buttonDn);
        mSeekBar = (SeekBar)findViewById(R.id.seekBar);
    }
    public void onBtnClick(View v)
    {
        int progress = 0;
        switch(v.getId())
        {
        case R.id.buttonUp: // + 버튼을 눌렀을 때
            progress = mSeekBar.getProgress();
            mSeekBar.setProgress(progress + 10);
            break;
        case R.id.buttonDn: // - 버튼을 눌렀을 때
            progress = mSeekBar.getProgress();
            mSeekBar.setProgress(progress - 10);
            break;
    }
}

검사방법 및 QA 지표 산정방법

텍스트 아닌 콘텐츠에 대응하는 대체 텍스트가 그 의미나 기능을 파악할 수 있도록 짧고 명확하게 제공되었는가?

iOS, Android

다중 누르기(Multi-touch), 슬라이드(Slide), 끌기와 놓기(Drag and drop) 등의 복잡한 동작을 사용하는 기능이 있는 경우 해당 기능을 대체할 수 있는 단순한 누르기 동작을 지원하는지 체크

오류수(건)

복잡한 동작을 사용하는 기능이 있는 경우 해당 기능을 대체할 수 있는 단순한 누르기 동작을 지원하지 않는 경우 수

사례

오류사례

누르기 동작으로 확대/ 축소할 수 있는 수단을 마련해 놓지 않음

오류사례이미지
개선방법

접근성 속성을 반드시 활성화하고 복잡한 동작을 사용할 때 단순한 누르기에도 동작할 수 있도록 해야 한다.

우수사례

슬라이드 기능 및 단순 누르기 동작 지원

우수사례이미지