Sự cố bộ nhớ cache cây có thể truy cập Google Chrome với UI Tự động


154

Google Chrome không làm mới các yếu tố khả năng truy cập ( Tự động hóa ) khi người dùng cuộn xuống trong trình duyệt.

Để tái tạo nó:

  1. Bật khả năng truy cập của trình kết xuất với: "chrome --force-render-accessibility"hoặc bằng cách đặt trên Khả năng truy cập toàn cầu tại "chrome://accessibility".
  2. Truy cập http://en.wikipedia.org/wiki/Google
  3. Mở tests.exe trong Chế độ tự động hóa giao diện người dùng (từ Windows Kits), tìm phần tử "Liên kết đến các bài viết liên quan".
  4. Quay trở lại Chrome, Cuộn xuống cho đến khi "Liên kết đến các bài viết liên quan" ở phía dưới hiển thị
  5. Phần tử "Liên kết đến các bài viết liên quan" được đánh dấu tắt màn hình

Tôi đã tìm thấy một số giải pháp thủ công có thể buộc Chrome làm mới nó:

  1. Đặt Thu phóng đến 90% sau đó đặt lại thành 100% (cách rất xấu xí)
  2. Tắt khả năng truy cập sau đó bật trong chrome://accessibility/

Điều tôi đang tìm kiếm là khả năng thực hiện một trong các hoạt động này theo chương trình hoặc bất kỳ hoạt động nào có thể làm cho Chrome làm mới cây bộ nhớ cache của nó.


Những gì tôi đã thử:

  • Thay đổi kích thước cửa sổ với PInvoke/MoveWindow
  • Vẽ lại cửa sổ với PInvoke/Redrawwindow
  • Xây dựng tiện ích mở rộng chrome và buộc thu phóng tới 100% theo yêu cầu: chrome.tabs.setZoom(null, 0);(hoạt động nhưng nhấp nháy và làm chậm cửa sổ)

Không ai trong số này đang làm việc đúng.

EDIT : Đã thử nghiệm với Google Chrome 40.XX, 41.XX, 42.XX, 43.XX, 44.XX, 45.XX, 46.XX, 47.XX.Dev, 48.XX.Dev trong Windows 7.


13
Bạn nên báo cáo vấn đề này với lỗi khả năng truy cập của crom trên Windows: code.google.com/p/chromium/issues/iêu
Simon Mourier

5
Bạn có thể chia sẻ một số thông tin về những gì bạn đang cố gắng làm một khi bạn giải quyết vấn đề? có lẽ có một cách giải quyết ...
DoronG

@ Ksv3n xin vui lòng gửi liên kết đến lỗi mà bạn đã đăng
Mauricio Gracia Gutierrez

@ Ksv3n Bạn đã thử làm bài kiểm tra tương tự trên một số trình duyệt khác chưa? Firefox có thể là gì?
PseudoAj

@Emzor cảm ơn bạn đã cố gắng thực hiện các chỉnh sửa, nhưng vui lòng không thực hiện các chỉnh sửa tầm thường để làm cho các liên kết trông "tốt hơn". Đôi khi các liên kết được hiển thị tốt hơn trong toàn bộ để người dùng có thể sao chép và dán nó nếu cần.
gitsitgo

Câu trả lời:


1

Cuộn trong các trang đơn giản được tối ưu hóa để không yêu cầu tính toán từ trình kết xuất. Chỉ cần bộ tổng hợp và GPU để cuộn do đó cây kết xuất chỉ được cập nhật từ trình kết xuất vẫn giống nhau.

Yêu cầu trình kết xuất để duyệt qua DOM và cập nhật cây Trợ năng trong quá trình cuộn chạy ngược lại với nỗ lực di chuyển trơn tru trong nhiều năm, đặc biệt đối với các thiết bị cảm ứng, vì vậy tôi không nghĩ rằng bạn sẽ có được lực kéo để sửa lỗi.

Ý tưởng của bạn về một phần mở rộng tôi nghĩ là sự thỏa hiệp tốt nhất (mặc dù xấu xí). Nhưng thay vì thu phóng thay đổi, thực hiện một đột biến nhỏ của trang (hoặc DOM) có thể là một giải pháp tốt hơn. Ví dụ, thử thêm một phần tử vô hình (hoặc gần như vậy) với thứ tự z thấp. Bạn cũng sẽ cần đánh giá kiểm soát đột biến để nó chỉ xảy ra 1 lần mỗi giây hoặc thậm chí ít thường xuyên hơn.


1
Phá vỡ khả năng truy cập khi được hỏi rõ ràng trong cấu hình hoặc tham số, trong tên của cuộn mượt mà có vẻ xấu.
manuell

1
@manuell đó là lý do tại sao các phần mở rộng tồn tại. Khi các ưu tiên của bạn chạy ngược lại với các ưu tiên của trình duyệt, bạn có thể đảm nhận. Khách hàng của bạn cài đặt tín hiệu tiện ích mở rộng mà họ đồng ý với bạn chứ không phải với nhóm Chrome.
AlienRancher

-1

Kiến trúc đa tiến trình của Chrome khác với kiến ​​trúc của bất kỳ trình duyệt nào khác. Để bảo mật, giao diện người dùng trình duyệt chính nằm trong một quy trình và các trang web được chạy trong các quy trình kết xuất riêng biệt (thường là một trên mỗi tab). Các quy trình Trình kết xuất là những quy trình duy nhất có đại diện cho DOM của trang web và do đó tất cả thông tin về khả năng truy cập, nhưng các quy trình kết xuất không được phép tương tác với hệ điều hành (đặc biệt là gửi hoặc nhận sự kiện hoặc tin nhắn) - đặc biệt là trình kết xuất các quy trình không thể gửi hoặc nhận các sự kiện tiếp cận.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.