Back to news
"The Impact of Investments"

We recently posted about how the Sovereign Tech Fund commissioned Igalia to close some interoperability gaps in web features. That wasn’t the end of their investment, though: we also submitted a proposal to commission further development of Servo, which was accepted.

Thanks to this investment, Igalia has added a functional accessibility system for Servo WebViews. We were able to implement a system for testing by consuming TreeUpdates which are emitted to the embedder, using the AccessKit consumer API to convert these updates into a live tree which we can make assertions about, and provide good accessibility in Servo design documentation. It is almost impossible to overstate the massive value of this investment.

This contract also allowed us to do a lot of work on the Servo WebViewAPI. Some important highlights follow.

  • For embedder controls, we were able to:
    • Add support for context menus, and servoshell now supports a default context menu.
    • Have all embedder controls such as file pickers, dialogs, context menus exposed via a unified API.
  • For input events:
    • Now embedders can detect when Servo consumed an event, and properly forward them to the toolkit when this doesn’t happen. This is essentially for integration into browsers and applications.
    • Full support for pinch zoom was added on both desktop and embedded platforms. All platforms now share a common pinch zoom implementation.
    • Many fixes and improvements were made related to device pixel ratio handling.
  • Script evaluation: We made improvements to the JavaScript evaluation API and how errors are handled.
  • UserContentManger API: We added an API that allows embedders to control injected scripts and stylesheets for each WebView.
  • Screenshot API: We added an API for reliably capturing screenshots of web content. This is incredibly useful for applications that test page rendering, or which capture page contents as an adjunct to internal testing. This allowed turning on WebDriver by default for Servo, an important multi-year milestone which allows Servo to pass many, many more WPT tests and actually test input event handling.

The WebView API’s methods and types are all now documented clearly at doc.servo.org/servo. This should greatly help embedders trying to work with Servo.

We were also able to re-architect Servo’s internal rendering system to support multiple targets. This was work that had originally been planned about 10 years ago, which was finally completed thanks to the STF funding.

All of this is in addition to the general maintenance which this investment helped support. There have been multiple improvements to our CI infrastructure, and its stability is much better. That’s critical because we must keep Servo working on five different platforms, fix multiple issues, and upgrade dependencies (especially Stylo, which is shared with Firefox).

We’ve actively maintained blog posts, talks and social posts hoping to help grow the community. We’re proud to say that while the monthly average number of PRs for all of 2025 was 265, as of June 2026 we averaged 487 PRs each month (not counting bots).

Thank you again to the Sovereign Tech Fund for their investment in Servo.