비주얼 디자인과 접근성

6139 단어 iOS디자인접근성
이 기사는 WWDC19의 Visual Design and Accessibility 세션 동영상을 요약한 것입니다.

※여기에 붙이고 있는 화상은, 상기 동영상을 스쿠쇼한 것입니다.

개요



내게 필요한 옵션을 시각적으로 향상시키는 세 가지 방법

Dynamic Type



Dynamic Type은 사용자가 글꼴 크기를 사용자 정의할 수 있는 기능입니다. Dynamic Type 을 구현할 때는, 다음의 4점에 주의할 필요가 있다.
  • 확장 성을 가지며 텍스트는 가능한 동적으로
  • 화면 너비를 최대한 활용
  • 텍스트를 잘라내지 않고, 디폴트와 같은 정도의 양을 표시한다
  • 텍스트뿐만 아니라 글리프의 크기도 조정하여 UI의 균형을 맞 춥니 다

  • iOS에서는 11종류의 텍스트 스타일로 Dynamic Type을 사용할 수 있다. Dynamic Type을 사용하는 경우는 다음과 같이 쓴다.
    label.font = UIFont.preferredFont(forTextStyle: .body)
    label.adjustsFontForContentSizeCategory = true
    

    iOS 11에서는 커스텀 폰트에서도 이용하기 쉬워졌다.
    var fontDict: [UIFont.TextStyle : UIFont] = myCustomFontDict()
    if let font = fontDict[style] {
      label.font = UIFontMetrics(forTextStyle: style).scaledFont(for: font)
    } else {
      label.font = UIFont.preferredFont(forTextStyle: style)
    }
    

    또한 Xcode 11에서는 Dynamic Type의 미리보기를 쉽게 볼 수 있게 되었다. Environment Overrides 버튼을 클릭하면 이 팝업이 나오고, 슬라이더로 실시간으로 문자의 크기를 바꿀 수 있다.


    시각 효과 감소



    몰입감을 내기 위해 시각 효과가 사용되는 경우가 있지만, 이것을 원하지 않는 사용자도 있다. 3명 중 1명이 움직임에 민감하고 차내에서 독서하는 것이 서투르거나 움직임이 있는 화면을 보는 것이 약하다. iOS에는 움직임을 줄이는 설정이 있다. 제공되는 API는 다음과 같습니다.
    static var UIAccessibility.isReduceMotionEnabled: Bool { get }
    static let UIAccessibility.reduceMotionStatusDidChangeNotification: NSNotification.Name
    

    비디오 자동 재생 설정이 iOS 13부터 새로 추가되었습니다. Auto-Play Video Previews 설정을 해제하면 동영상이 자동으로 재생되지 않습니다.



    이 새로운 API는 공용으로 제공됩니다. 앱 내에서 설정이 제공되는 경우 글로벌 설정과 미러링 할 수 있습니다.
    static var UIAccessibility.isVideoAutoplayEnabled: Bool { get }
    static let UIAccessibility.videoAutoplayStatusDidChangeNotification: NSNotification.Name
    

    화면 전환시의 시각 효과의 설정도 있다. 「크로스 페이드 트랜지션을 우선」이라고 하는 설정이 새롭게 되어 있어, 이 설정을 온으로 하면 화면 천이 애니메이션이 디졸브로 바뀐다.

    색상 이외로 구별



    2형 2색각의 사람에게는 빨강, 초록, 황색이 같은 색으로 보인다. iOS 13에서는 설정의 접근성의 「화면 표시와 텍스트 사이즈」로부터 「칼라 이외로 구별」이라고 하는 항목을 사용할 수 있다.



    개발자는이 새로운 API를 사용하여 설정을 모니터링하고 변경합니다. shouldDifferentiateWithoutColor가 true라면 색만으로 정보를 전달하고 있는 곳에는 형태나 다른 인디케이터를 추가하도록 한다.
    
    public func UIAccessibility.shouldDifferentiateWithoutColor() -> Bool
    public static let UIAccessibility.differentiateWithoutColorDidChangeNotification: NSNotification.Name
    

    이러한 API는 있다고는 해도, 색만으로 의미를 짓는 것은 가능한 한 그만두는 것이 좋다.

    좋은 웹페이지 즐겨찾기