.sr-only
เป็นชื่อคลาสที่ใช้สำหรับโปรแกรมอ่านหน้าจอโดยเฉพาะ คุณสามารถใช้ชื่อคลาสใดก็ได้ แต่.sr-only
โดยทั่วไปแล้วจะใช้งานค่อนข้างสวย หากคุณไม่สนใจเกี่ยวกับการพัฒนาโดยคำนึงถึงความสอดคล้องมันก็สามารถลบออกได้ มันจะไม่ส่งผลกระทบต่อ UI ในทางใดทางหนึ่งหากลบเพราะ CSS สำหรับคลาสนี้ไม่สามารถมองเห็นเบราว์เซอร์เดสก์ท็อปและอุปกรณ์มือถือ
ดูเหมือนว่ามีข้อมูลบางอย่างที่ขาดหายไปเกี่ยวกับการใช้.sr-only
เพื่ออธิบายวัตถุประสงค์และสำหรับผู้อ่านหน้าจอ ก่อนอื่นสิ่งสำคัญคือต้องคำนึงถึงผู้ใช้ที่มีความบกพร่องเสมอ การด้อยค่าเป็นวัตถุประสงค์ของการปฏิบัติตาม 508: https://www.section508.gov/และเป็นเรื่องดีที่ bootstrap คำนึงถึงเรื่องนี้ อย่างไรก็ตามการใช้งาน.sr-only
ไม่ใช่สิ่งที่จำเป็นต้องนำมาพิจารณาสำหรับการปฏิบัติตาม 508 คุณมีการใช้สีขนาดของแบบอักษรการเข้าถึงผ่านการนำทางตัวอธิบายการใช้เพลงและอีกมากมาย
แต่สำหรับ.sr-only
- CSS จริงทำอะไร? มีหลายสายพันธุ์ที่แตกต่างกันเล็กน้อยของ CSS .sr-only
ที่ใช้สำหรับเป็น หนึ่งในไม่กี่คนที่ฉันใช้อยู่ด้านล่าง:
.sr-only {
position: absolute;
margin: -1px 0 0 -1px;
padding: 0;
display: block;
width: 1px;
height: 1px;
font-size: 1px;
line-height: 1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
outline: 0;
}
เนื้อหา CSS หนังดังกล่าวข้างต้นในเบราว์เซอร์สก์ท็อปและโทรศัพท์มือถือห่อด้วยชั้นนี้ได้ แต่มองเห็นได้ด้วยโปรแกรมอ่านหน้าจอเช่น JAWS: http://www.freedomscientific.com/Products/Blindness/JAWS ตัวอย่างมาร์กอัพมีดังนี้:
<a href="#" target="_blank">
Click to Open Site
<span class="sr-only">This is an external link</span>
</a>
นอกจากนี้หากองค์ประกอบ DOM มีความกว้างและความสูงเป็น 0 องค์ประกอบจะไม่ถูกมองเห็นโดย DOM width: 1px; height: 1px;
นี่คือเหตุผลที่การใช้ CSS ดังกล่าวข้างต้น โดยการใช้display: none
และการตั้งค่า CSS ของคุณไปที่height: 0
และwidth: 0
องค์ประกอบจะไม่เห็นโดย DOM และจึงเป็นปัญหา การใช้ CSS ด้านบนwidth: 1px; height: 1px;
นั้นไม่ใช่สิ่งที่คุณทำเพื่อทำให้เนื้อหามองไม่เห็นบนเดสก์ท็อปและมือถือ (โดยที่overflow: hidden
เนื้อหาของคุณจะยังคงปรากฏบนหน้าจอ) และผู้อ่านหน้าจอสามารถมองเห็นได้ การซ่อนเนื้อหาจากเดสก์ท็อปและเบราว์เซอร์มือถือทำได้โดยการเพิ่มออฟเซ็ตจากwidth: 1px
และheight: 1px
กล่าวถึงก่อนหน้านี้โดยใช้:
position: absolute;
margin: -1px 0 0 -1px;
overflow: hidden;
สุดท้ายเพื่อให้มีความคิดที่ดีเกี่ยวกับสิ่งที่โปรแกรมอ่านหน้าจอเห็นและถ่ายทอดให้กับผู้ใช้ที่บกพร่องของมันให้ปิดการออกแบบหน้าสำหรับเบราว์เซอร์ของคุณ สำหรับ Firefox คุณสามารถทำได้โดยไปที่:
View > Page Style > No Style
ฉันหวังว่าข้อมูลที่ฉันให้ไว้ที่นี่จะเป็นประโยชน์ต่อผู้อื่นนอกเหนือจากการตอบกลับอื่น ๆ