접근성이 뛰어난 반응형 디자인

최상의 다중 기기 환경을 제공하려면 반응형으로 디자인하는 것이 좋다는 점은 익히 알고 계시겠지만, 이런 디자인은 접근성 향상에도 도움이 됩니다.

Udacity와 같은 사이트를 생각해 보세요.

Udacity 사이트

작은 글자를 읽는 데 어려움을 겪는 저시력 사용자는 페이지를 최대 400%까지 확대할 수 있습니다. 사이트가 반응형으로 설계되었기 때문에 UI가 '더 작은 표시 영역'(실제로는 큰 페이지에 맞춰)에 맞게 재정렬됩니다. 이는 화면 확대가 필요한 데스크톱 사용자와 모바일 스크린 리더 사용자에게도 유용합니다. 모두에게 이익이 됩니다. 다음은 같은 페이지를 400%의 배율로 조정한 화면입니다.

Udacity 사이트가 400%로 확대됨

실제로 반응형 디자인만으로도 페이지가 '... 텍스트 크기가 두 배가 될 때 읽기 쉽고 작동해야 한다'고 명시한 WebAIM 체크리스트의 1.4.4 규칙을 준수합니다.

반응형 디자인의 모든 내용을 다루는 것은 이 가이드에서 다루지 않습니다. 하지만 반응형 환경에 도움이 되고 사용자가 콘텐츠에 더 잘 액세스할 수 있게 해 주는 몇 가지 중요한 사항을 소개합니다.

표시 영역 메타 태그 사용

<meta name="viewport" content="width=device-width, initial-scale=1.0">

width=device-width를 설정하면 기기 독립적 픽셀에서 화면 너비와 일치하게 되고 initial-scale=1를 설정하면 CSS 픽셀과 기기 독립적 픽셀 간에 1:1 관계가 설정됩니다. 이렇게 하면 브라우저에서 콘텐츠 크기가 화면 크기에 맞춰 조정되므로, 사용자에게 텍스트가 보기 불편하게 변형되는 것을 막을 수 있습니다.

자세한 내용은 뷰포트에 맞게 콘텐츠 크기 조정을 참고하세요.

사용자가 확대/축소하도록 허용

뷰포트 메타 태그를 사용하여 maximum-scale=1 또는 user-scaleable=no를 설정하여 확대/축소를 방지할 수 있습니다. 이렇게 하지 마세요. 필요한 경우 사용자가 확대하도록 하세요.

유연한 설계

특정 화면 크기를 타겟팅하지 말고 대신 유연한 그리드를 사용하여 콘텐츠에 따라 레이아웃을 변경하세요. 위의 Udacity 예에서 볼 수 있듯이 이 접근 방식을 사용하면 화면이 작아지거나 확대/축소 수준이 높아져 공간이 줄어든 경우 디자인이 이에 맞게 반응합니다.

이러한 기법에 관한 자세한 내용은 반응형 웹 디자인 기본사항 도움말을 참고하세요.

텍스트에 상대 단위 사용

유연한 그리드를 최대한 활용하려면 텍스트 크기와 같은 항목에 픽셀 값 대신 em 또는 rem과 같은 상대 단위를 사용하세요. 일부 브라우저는 사용자 환경설정에서만 텍스트 크기 조정을 지원하며, 텍스트에 픽셀 값을 사용할 경우에는 이 설정이 광고 문구에 영향을 주지 않습니다. 하지만 상대 단위를 전면적으로 사용한 경우에는 사이트 복사본이 업데이트되면서 사용자의 기본 설정을 반영하게 됩니다.

이렇게 하면 사용자가 확대/축소할 때 전체 사이트가 리플로우되어 사이트를 사용하는 데 필요한 독서 환경이 만들어집니다.

소스 순서에서 시각적 뷰의 연결 해제 방지

키보드로 사이트를 탭하는 방문자는 HTML 문서의 콘텐츠 순서를 따릅니다. FlexboxGrid와 같은 최신 레이아웃 메서드를 사용하면 시각적 렌더링이 소스 순서와 일치하지 않도록 쉽게 만들 수 있습니다. 이렇게 되면 키보드를 사용하여 움직일 때 당황하게 될 수 있습니다.

탭하여 콘텐츠를 이동하면서 각 시점에서 디자인을 테스트합니다. 페이지의 흐름이 여전히 적절한가요?

소스 및 시각적 디스플레이 연결 해제에 대해 자세히 알아보세요.

공간적 단서에 주의하기

마이크로 카피를 작성할 때는 페이지에서 요소의 위치를 나타내는 언어를 사용하지 마세요. 예를 들어 탐색이 화면 상단에 있는 모바일 버전에서는 '왼쪽에 있는' 탐색을 언급하는 것이 적절하지 않습니다.

터치 스크린 기기에서 탭 타겟이 충분히 큰지 확인

터치 스크린 기기에서는 탭 영역이 다른 링크를 누르지 않고도 쉽게 활성화할 수 있을 만큼 충분히 커야 합니다. 탭 가능한 요소의 적절한 크기는 48px입니다. 탭 타겟에 관한 자세한 안내는