Tiêu điểm hiển thị trong css

“Chỉ báo tiêu điểm”, như tên gọi của nó, biểu thị trực quan (thường có dạng đường viền) rằng một phần tử có tiêu điểm. Điều đó nghe có vẻ đơn giản và nó mô tả hoàn hảo những gì mà bộ chọn :focus cũ có thể thực hiện được. Tuy nhiên, trong nhiều thập kỷ nay, liệu trình duyệt có thực sự hiển thị chỉ báo tiêu điểm hay không là một vấn đề phức tạp hơn nhiều.

Tiêu điểm hiển thị trong css
Chỉ báo tiêu điểm trên các yếu tố khác nhau trong Safari

Dựa trên rất nhiều phản hồi và nghiên cứu, các trình duyệt từ lâu đã sử dụng phỏng đoán về cả loại phần tử và cách phần tử đó đạt được tiêu điểm để xác định xem có nên hiển thị chỉ báo tiêu điểm hay không. Nếu người dùng đang điều hướng trang bằng bàn phím, nó sẽ. Trong các tình huống khác, nó phụ thuộc vào. Ví dụ: một mục nhập văn bản sẽ hiển thị một chỉ báo bất kể nó nhận được tiêu điểm như thế nào. Điều này rất quan trọng vì tất cả người dùng cần biết dữ liệu đầu vào của họ sẽ được đặt ở đâu. Các giao diện không sử dụng những kinh nghiệm đó cảm thấy không tự nhiên

Mục tiêu của bộ chọn :focus cũ là cho phép các tác giả tạo kiểu tốt hơn cho chỉ báo tiêu điểm để phù hợp với các lựa chọn thiết kế tổng thể của họ. Vấn đề là sử dụng nó đồng nghĩa với việc mất đi các phương pháp phỏng đoán. Thật không may, kết quả cuối cùng là cách sử dụng phổ biến nhất của bộ chọn :focus là loại bỏ hoàn toàn các chỉ báo. Điều này tránh được các kiểu lấy nét “dương tính giả” gây ra khiếu nại từ nhiều người dùng. Vấn đề là việc xóa kiểu dáng tiêu điểm sẽ phá vỡ khả năng truy cập trang web, gây rắc rối cho những người điều hướng trang bằng bàn phím

May mắn thay, một bộ chọn CSS mới đã ra đời, tránh được loại vấn đề về khả năng truy cập này trong khi cung cấp hành vi mà các nhà phát triển web đang tìm kiếm. Lớp giả :focus-visible đối sánh các phần tử dựa trên chẩn đoán của trình duyệt. Nó chỉ cho phép các tác giả web tạo kiểu cho chỉ báo tiêu điểm nếu nó được vẽ nguyên bản

Mặc dù là một tính năng mới xuất hiện gần đây trên nền tảng web, nhưng nó đã được sử dụng bởi gần 1% số trang web (theo Web Almanac của HTTP Archive)

Thực hiện

Kể từ Safari Technology Preview 138, bộ chọn :focus-visible đã được thêm vào WebKit, đặc biệt chú ý đến khả năng tương tác với các triển khai khác. Là một phần của việc triển khai WebKit, bộ thử nghiệm Kiểm tra nền tảng web đã được cải thiện và mở rộng khá nhiều, bổ sung phạm vi bảo hiểm cho các trường hợp mới và đảm bảo sự tương tác tốt hơn giữa các triển khai khác nhau

Công việc này dẫn đến những thay đổi và cải tiến xung quanh. Nhờ các cuộc kiểm tra và thảo luận, tất cả các trình duyệt giờ đây đều tuân theo một bộ kinh nghiệm chung và có cùng hành vi trong hầu hết các tình huống. Ví dụ: trong WebKit, nhấp vào

sẽ không còn hiển thị chỉ báo tiêu điểm theo mặc định (khớp với các công cụ trình duyệt khác)

Ngoài ra, biểu định kiểu Tác nhân người dùng mặc định trong tất cả các trình duyệt hiện sử dụng lớp giả :focus-visible. Đây là một điều tuyệt vời vì nó tránh được loại sự cố đã xảy ra với :focus ngay từ đầu và loại bỏ nhu cầu sử dụng một số cách giải quyết kỳ lạ, như

:focus-visible {
    outline: dotted thick green;
    background: lime;
    box-shadow: 0.3em 0.3em lightgrey;
}
0, để tạo kiểu cho chỉ báo tiêu điểm mặc định do trình duyệt vẽ

Nếu tò mò về chi tiết triển khai, bạn có thể đọc loạt bài đăng trên blog được viết dọc theo con đường phát triển tại blog. igalia. com/mrego, hoặc xem cuộc nói chuyện này

ví dụ

Tin vui sau tất cả những thay đổi đã xảy ra gần đây vào khoảng :focus-visible, đó là giờ đây bạn chỉ cần sử dụng bộ chọn :focus-visible để tạo kiểu cho chỉ báo tiêu điểm do công cụ trình duyệt vẽ

Ngoài ra, các trình duyệt không còn hiển thị chỉ báo tiêu điểm khi người dùng không mong đợi, chẳng hạn như tiêu điểm một phần tử thông thường thông qua nhấp chuột

Các tác giả web sẽ không cần bất kỳ cách giải quyết nào để đạt được mục tiêu tạo kiểu cho chỉ báo tiêu điểm được hiển thị bởi công cụ web

Ví dụ: nếu bạn muốn chỉ báo tiêu điểm của mình có đường viền màu đỏ tươi dày với độ lệch nhỏ, bạn chỉ cần sử dụng CSS sau trên trang web của mình

:focus-visible {
    outline: solid thick magenta;
    outline-offset: 0.1em;
}
Tiêu điểm hiển thị trong css

Và bạn có thể sử dụng các thuộc tính khác, không chỉ các thuộc tính liên quan đến phác thảo, để tùy chỉnh chỉ báo tiêu điểm trong trang web của mình. e. g.

:focus-visible {
    outline: dotted thick green;
    background: lime;
    box-shadow: 0.3em 0.3em lightgrey;
}
Tiêu điểm hiển thị trong css

Mở ưu tiên

Điều đáng nói là công việc này đã được lựa chọn chung trong số rất nhiều công cụ, trong nhiều công cụ và được công chúng tài trợ một phần, thông qua chiến dịch Ưu tiên mở của Igalia. Nỗ lực này hoạt động nhằm dân chủ hóa việc phát triển các tính năng của nền tảng web, tạo cơ hội cho các nhóm người và tổ chức nhỏ hơn có tác động trực tiếp đến hệ sinh thái web. Nếu bạn muốn tìm hiểu thêm về điều này, Eric Meyer đã có một bài nói chuyện giải thích về nó tại TPAC của W3C

Nhờ có nhiều đóng góp, thử nghiệm này không chỉ mang lại sự phát triển :focus-visible trong WebKit mà còn rất nhiều khả năng tương tác và sự liên kết trong các triển khai khác và cảm giác rằng có nhu cầu thực sự đối với tính năng này. Cảm ơn bạn để mọi người tham gia

Nhận xét

Lớp giả :focus-visible đã được bật theo mặc định trong Safari Technology Preview 138, vui lòng dùng thử và báo cáo bất kỳ vấn đề nào bạn có thể tìm thấy về lỗi. webkit. tổ chức. Bạn cũng có thể gửi một tweet tới @regocas hoặc @webkit để chia sẻ suy nghĩ của mình về tính năng này

Tôi nên sử dụng tiêu điểm hay tiêu điểm

thêm. tập trung lớp giả vào một phần tử sẽ làm cho nó hiển thị một kiểu cụ thể của tiêu điểm và bỏ qua chẩn đoán của trình duyệt. Các. ngược lại, focus-visible , chỉ áp dụng kiểu dáng tùy chỉnh nếu nó được hiển thị nguyên bản. Đó là một tình huống đôi bên cùng có lợi, giao diện tùy chỉnh đẹp mắt và nhiều năm nghiên cứu về một thuộc tính CSS

Tôi có thể đặt tiêu điểm bằng CSS không?

CSS. lớp giả tiêu điểm chọn một phần tử ở trạng thái tiêu điểm . Điều này xảy ra khi bạn nhấp vào một phần tử hoặc chọn phần tử đó bằng nút tab. . tiêu điểm xuất hiện sau tên của phần tử bạn muốn chọn. Bạn có thể chỉ muốn áp dụng một kiểu cho một thành phần khi nó có tiêu điểm trên trang web.

là tiêu điểm

Người dùng bàn phím và trình đọc màn hình có thể truy cập chỉ báo tiêu điểm hiển thị vì chỉ báo này hiển thị nội dung họ đang tương tác. Người mù và khiếm thị sử dụng trình đọc màn hình để tương tác với các trang web và ứng dụng. Trình đọc màn hình là một loại công nghệ hỗ trợ chuyển đổi mọi thứ trên màn hình thành âm thanh và/hoặc chữ nổi.

Chỉ báo lấy nét có thể nhìn thấy là gì?

Chỉ báo tiêu điểm hiển thị là kiểu cho biết phần tử nào có tiêu điểm và do đó có thể tương tác với . Các yếu tố có thể tập trung bao gồm. liên kết, nút, đầu vào và bất kỳ yếu tố tương tác nào khác có thể được vận hành bằng bàn phím. Các trình duyệt có các chỉ báo tiêu điểm hiển thị theo mặc định.