WCAG 2.0 khuyên bạn cũng nên sử dụng :focus
khi :hover
được sử dụng trên các phần tử liên kết để hỗ trợ điều hướng bàn phím. Điều này làm việc tốt cho các phần tử liên kết, nhưng có một vài sự khác biệt giữa hai yếu tố này.use: focus as a: hover thay thế cho điều hướng bàn phím
- bất kỳ yếu tố có thể có tình trạng
:hover
trong khi chỉ có rất ít người có thể được tập trung - khi lơ lửng trên một phần tử, bạn cũng di chuột qua tất cả các yếu tố mẹ của nó. Đây không phải là trường hợp có tiêu điểm
Câu hỏi này nghiêm chỉnh về css. Có cách nào để mô phỏng hành vi của :hover
(như được mô tả ở trên) để điều hướng bằng bàn phím không? Hoặc có bất kỳ lý do mạnh mẽ tại sao một người không muốn điều đó?
Để làm cho nó rõ ràng hơn ở đây là một ví dụ:
html:
<div id="box">
foo bar
<a href="#">click me</a>
</div>
css:
#box {
opacity: 0.3;
}
#box:hover {
opacity: 1;
}
#box a:focus {
opacity: 1;
}
Khi sử dụng một con chuột, tôi sẽ di chuột qua các yếu tố liên kết trước khi sử dụng nó . Vì trạng thái :hover
lan truyền lên trên #box
sẽ hoàn toàn mờ đục.
Khi sử dụng một bàn phím, tôi sẽ tập trung vào yếu tố liên kết trước khi sử dụng nó. Vì trạng thái :focus
không không truyền lên trên #box
sẽ không hoàn toàn mờ đục.
Rất thú vị .. Nhưng tôi khá chắc chắn 'opacity' chỉ là không làm việc trên': tập trung', và không phải là cách khác xung quanh. Dựa trên những gì tôi biết, bạn chỉ có thể thay đổi một vài thuộc tính trên các sự kiện như ': active' /': focus'/': visited' .. Tôi có thể sai mặc dù .. xem http://jsfiddle.net/8G4bY/... EDIT ... Nó có vẻ như mặc dù 'opacity' không hoạt động trong một vài trường hợp .. http://jsfiddle.net/GcxMk/ –
[góc-sâu-blur] (https://github.com/ myplanet/angular-deep-blur) có phần liên quan.Nó kiểm tra xem phần tử tập trung có nằm trong cây con được chỉ định và thực thi mã nguồn trên mọi sự kiện mờ từ cây con đó hay không. – tobib