Looking ahead: Microsoft Edge for developers in 2016
Recently, in “Looking back: Microsoft Edge for developers in 2015,” we shared the priorities which guided our development in 2015, what we delivered with Windows 10 and Microsoft Edge, and shared some of the ways we measure success. Today, we would like to talk about where we’re heading with EdgeHTML in 2016.
2016 priorities for EdgeHTML
We’ve been immersing ourselves in your feedback, reviewing development trends, and meeting with partners and developers around the globe to inform where we take EdgeHTML next. We want to ensure we’re focusing on the most impactful work! In the spirit of continuing our opennness, we’d like to share our priorities for 2016:
- Deliver a modern extension platform powered by web technologies and the Windows Store
- Empower all Microsoft Edge customers through accessibility and inclusive design
- Continue to reinforce Microsoft Edge fundamentals; security, performance and efficiency
- Build thoughtfully for the future of the web
- Embrace more channels for community feedback and participation
Over the next year you’ll see our product focus and standards body engagements revolve around these five priorities. Let’s take a brief look at what each priority means to us, along with some initial features in these areas that are going “in development” today.
Last year, we announced our intent to deliver a new extension platform for Microsoft Edge to replace the often unreliable and insecure native add-ons of the past. Extensions are among the most requested features for Microsoft Edge and we’re building an extension platform powered by web technologies and familiar to developers. Any browser extensibility is a potential vector for malicious software, and our extensions will be vetted, delivered, and managed through the Windows Store.
Our implementation is underway and we look forward to sharing early examples soon via the Windows Insider Program. We will share more information on developing and publishing your own extensions at a later date…
We have often underscored our commitment to interoperability using the motto “the web should just work for everyone.” Everyone includes not just every browser and every device, but every person, regardless of ability. This is a Microsoft-wide priority in 2016:
“…top of mind for me heading into 2016 is how we must make Microsoft products accessible to the more than 1 billion people globally of all abilities.”Satya Nadella
Back in September, we published Accessibility: Towards a more inclusive web with Microsoft Edge and Windows 10, outlining the state of support for popular assistive technologies in Microsoft Edge and sharing our roadmap to improve that support. We’re devoting more resources than ever to that task in 2016, and are committed to making Microsoft Edge a first-class accessible experience for browsing the web whether you’re using Windows’ built in Narrator or 3rd party assistive technologies.
Our initial focus in 2016 will be on a few key areas that we think will have the biggest impact and lay a strong foundation for later improvements. We have begun development on major improvements focused on these goals:
- Modernize our accessibility system to support HTML5 and CSS3 on Windows 10.
- Enable HTML and Core Accessibility API mappings.
- Provide Accessible Name and Description computation and API mappings.
- Add accessible HTML5 controls and new semantic elements.
- Improve high contrast support.
- Modernize caret browsing and new input modalities.
- Improve visual impairment readability, focus, and selection.
- Deliver developer tools for building and testing accessible sites.
We’re also investigating longer term investments like the Web Speech API and script-based accessibility. We plan to share more details about our accessibility improvements in future posts on the topic.
While web developers have a responsibility to write safe and functional code, ultimately the browser is responsible for ensuring that code doesn’t harm the user or breach their trust, that it performs as expected, and that doesn’t have a disproportionate impact on system stability or battery life. While these are all areas that are never “done,” we will continue to focus on fundamentals in 2016, including:
- Advance product security across multiple dimensions (lots of surprises coming).
- Enhance keyboard scrolling performance and interactivity.
- Isolate Adobe Flash into a separate process and pause unnecessary content.
- Continue to push the GPU boundaries through native Windows graphics.
- Improve background tab suspension, timers, and processing.
In addition to these highlights, we’re continually poring over telemetry and feedback to identify the top reliability and performance bugs impacting users, and fixing them as quickly as possible. We plan to share more details on how we identify and act on the top real-world issues in future posts.
Building for the future of the web
Despite this, it’s fashionable to measure browsers based on the number of new APIs they support. While this can be a useful yardstick, we believe a measure of thoughtfulness is important in choosing which technologies to implement, and at what pace.
Our goal is to find the right approach to implementing new web standards features that may undergo rapid evolution, potentially causing unneeded turbulence for web developers (e.g. Flexbox or WebRTC/ObjectRTC), or may gather popularity and then be abandoned for various reasons (e.g. Object.observe() or SMIL).
Though it’s not an exact science, we use a combination of examining the standards spec stability and maturity, requests with real-world scenarios from our partners and web developer community, and data collected via the Bing crawler from hundreds of millions of websites when determining which standards to implement next.
With this in mind, we have begun development on these technologies:
- ES2016 Modules
- Fetch API (a component technology of Service Worker; our initial implementation will focus on XHR-style scenarios)
- Web Notifications (integrated with the Windows 10 Action Center)
- Beacon API
- WOFF 2.0
- High Resolution Time Level 2
- Future ECMAScript proposals – Array.prototype.includes, String.prototype.padStart, String.prototype.padEnd, Object.values, Object.entries
- JS pipeline improvements for future WebAssembly work
In addition to the above, we’re implementing Drag and Drop Directories (a subset of the deprecated FileSystem API) for interoperability with existing folder upload scenarios. To standardized folder upload scenarios in the future, we continue to work with the Directory Upload specification at the WICG.
We’re also beginning initial explorations and prototyping on some work that we expect to span multiple releases and involve standards iteration. These technologies include Service Worker and the Push API. We’re excited about evolving our Hosted Web App platform using these technologies to cover more offline scenarios.
In addition, we remain excited about the potential of Web Components and outlined our vision for Web Components in Microsoft Edge last year. We intend to prototype Shadow DOM next as we conclude investments rearchitecting our DOM, but we expect it to be a long term investment as the standards stabilize.
Finally, we’re looking forward to exciting new standards maturing in 2016:
- FIDO 2.0: We worked with Google, PayPal, and others to submit FIDO 2.0 proposals to W3C in November. As we refine and implement these standards in Microsoft Edge you will be able to use Windows Hello to log-in to web sites that adopt the APIs.
- Web Payments: Web Payments is another area we expect to see progress. W3C’s Web Payments Working Group is considering different proposals for an API to allow integrated payments using services hosted by the browser.
- ECMAScript 2016: We will continue to deeply engage in ECMA’s TC39 committee to develop features for ECMAScript 2016 and beyond, including Async Functions, which is already implemented behind experimental flags in preview builds of Microsoft Edge today.
This is a small highlight of the dozens of standards we’re developing together with the industry, and these features will begin to appear in nightly builds soon. There’s always more to come with web standards and this is just a highlight of what’s on the way!
Opening up to the community
In addition to product focus areas, we’re also excited to expand on ways that we can share and interact openly with the web community. We have exciting projects in the works that will make it easier for developers to share and track interoperability issues, and access more of the data we use to make decisions about which web technologies we’ll support and when.
As always, we welcome and encourage your feedback. You can follow our progress through our blog and Platform Status pages, vote on technologies you’d like to see implemented on our Platform Suggestion Box on Uservoice, or simply reach out to @MSEdgeDev on Twitter.
We’re excited about what 2016 holds, and look forward to building the web with you!
- Jason Weber, Director of Program Management, Microsoft Edge