Request to add new service for Accessibility

205 views
Skip to first unread message

Katie Dektar

unread,
Sep 6, 2022, 12:27:27 PM9/6/22
to servic...@chromium.org, David Tseng
Hello Services Dev,

We'd like to move Accessibility logic from the browser process to a sandboxed Accessibility service on all platforms, starting with Chrome OS. There are many reasons for this, including:
* Allows Chrome OS accessibility features (like ChromeVox) to be ported from component extensions, removing dependency on extension system
* Allows Fuschia to re-use Chrome OS's accessibility features
* Moves accessibility logic out of browser process on other desktop platforms, improving performance and decreasing crashes
* Improves security on Windows where screen readers inject themselves into the browser process to access a11y (now they'd inject into the new service)

A high-level design doc with more background reasoning for the service is at go/chrome-atp, and a design doc with more details specifically about the service and its mojom interface only is at go/chromeos-atp-service-process.

I propose creating //services/accessibility because I think Accessibility is a core system service.

I have a very rough prototype of the service for Chrome OS (with quite a bit of unsubmittable code where I explored V8 bindings). I haven't tried making a sandbox type specific to this service because I don't know how that works yet, but AFAIK we just need specific file reading and v8 execution. I can clean this up if it helps!

Please let me know if it makes sense to create this in //services/accessibility, somewhere else, or if you have any questions!

-Katie

Katie Dektar (she/her) | Software Engineer | kat...@google.com |  ka...@chromium.org

Ken Rockot

unread,
Sep 6, 2022, 12:45:51 PM9/6/22
to Katie Dektar, servic...@chromium.org, David Tseng
This all sounds good, including the proposed home in //services. Thanks for the PoC too. Minor note: go/chrome-atp appears to be a bad link, but the summary reasoning given here makes a lot of sense anyway. In particular, 3p injection into the service vs the browser process is a big win, as is the ability to move away from component extensions.
 

-Katie

Katie Dektar (she/her) | Software Engineer | kat...@google.com |  ka...@chromium.org

--
You received this message because you are subscribed to the Google Groups "services-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to services-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/services-dev/CAKGM1FVXpJHJJCzf1Q8pkn_C_TJikSm9YC%2BDuBP833Yc95iQtQ%40mail.gmail.com.

Katie Dektar

unread,
Sep 6, 2022, 12:48:20 PM9/6/22
to Ken Rockot, servic...@chromium.org, David Tseng
Woops, fixed go/chrome-atp. Thanks Ken!

-Katie

Katie Dektar (she/her) | Software Engineer | kat...@google.com |  ka...@chromium.org


Colin Blundell

unread,
Sep 7, 2022, 8:53:50 AM9/7/22
to Katie Dektar, Ken Rockot, servic...@chromium.org, David Tseng
Agree with Ken. I noted that the service depends on v8, but we already have a couple cases of services in //services doing so, as well as documentation on why/when that is allowed. This looks like it falls squarely into that case.

Best,

Colin

Reply all
Reply to author
Forward
0 new messages