P粉4929595992023-08-23 15:43:06
2020년 편집:
현재 display:none
或 visibility:hidden
일반적으로 콘텐츠가 시각적으로나 화면 판독기 모두에서 보이지 않게 만드는 것으로 보이므로(Firefox 및 Chrome에서 NVDA로 테스트) 아래 설명은 유효하지 않습니다.
현재 콘텐츠를 화면 밖으로 옮기는 것이 화면 리더 사용자에게 콘텐츠를 제공하는 유일한 방법인 것으로 보입니다. 다음 표도 참조하세요.
http://stevefaulkner.github.io/HTML5accessibility/tests/hidden-2016.html
허용된 답변에 달리 명시되지 않는 한, aria-hidden=false
가 설정된 경우 적어도 Chromevox1 및 NVDA2는 display:none
或 visibility:hidden
CSS 属性的元素,如果设置了 aria-hidden=false
CSS 속성이 있는 요소도 읽습니다. 그러나 이는 현재 Chrome(65)에서만 가능하며 Firefox나 Edge에서는 불가능합니다(내 테스트에 따르면).
따라서(현재 Chrome에서만 가능) 다음과 같이 할 수도 있습니다.
으아악Chromevox와 NVDA가 첫 번째와 두 번째 헤더를 읽는 곳입니다. 참고: https://jsfiddle.net/4y3g6zr8/6/
모든 브라우저가 이 동작에 동의한다면 다른 솔루션에서 제안된 모든 CSS 트릭보다 더 깔끔한 솔루션이 될 것입니다.
1Chromevox https://chrome.google.com/webstore/detail/chromevox/kgejglhpjiefppelpmljglcjbhoiplfn 2NVDA https://www.nvaccess.org/
P粉5949413012023-08-23 10:57:50
대체 텍스트에 관해서는 당신 말이 맞습니다. 이미지에서만 작동합니다. 하지만 aria-label을 사용하면 이미지가 아닌 요소의 alt 속성을 다음과 같이 바꿀 수 있습니다.
aria-label
(不要与aria-labelledby
混淆,后者从另一个元素的文本中提取可访问名称)用于为元素添加屏幕外描述性内容,类似于alt=
속성은 이미지에 오프스크린 설명 콘텐츠를 추가하고 이미지를 표시할 수 없을 때 사용됩니다.
와의 차이점은 aria-label
를 이미지가 아닌 요소에 사용할 수 있다는 것입니다.
내부 텍스트를 숨기려면 aria-hidden
속성을 추가하세요.
자르기는 화면에 계속 표시되는 1px x 1px 요소를 완전히 숨기는 데 사용됩니다.
실제 들여쓰기 값은 페이지 레이아웃 범위를 벗어나는 한 중요하지 않습니다. 예시에서는 콘텐츠를 왼쪽으로 5,000픽셀 이동합니다.
이 솔루션은 전체 텍스트 블록에만 작동합니다. 앵커, 양식, 오른쪽에서 왼쪽으로 쓰는 언어 또는 다른 텍스트와 혼합된 특정 인라인 텍스트에서는 제대로 작동하지 않습니다.
이러한 스타일은 텍스트를 숨겨 모든 사용자에게 보이지 않게 만듭니다. 텍스트는 페이지의 시각적 흐름에서 제거되고 화면 판독기에서는 무시됩니다. 스크린 리더로 콘텐츠를 읽으려면 이 CSS를 사용하지 마세요. 그러나 화면 판독기에서 내용을 읽을 수 없도록 하려면 이 방법을 사용하십시오.
위와 동일합니다. 높이나 너비가 없는 요소는 페이지 흐름에서 제거되므로 대부분의 스크린 리더는 이 내용을 무시합니다. HTML 너비와 높이가 동일한 결과를 생성할 수 있습니다. 화면 판독기에서 콘텐츠를 읽으려면 콘텐츠 크기를 0픽셀로 설정하지 마세요.