Microsoft Edge was built from the ground-up with the modern web in mind. When we decided to make a “break from the past” for Windows 10, we didn’t just spend all of our time combing through complicated standards documents and implementing esoteric algorithms (though we did a fair amount of that!); in keeping with our ongoing focus on interoperability with the modern Web, we spent a great deal of our time dissecting modern website patterns, understanding the intent behind their code, and building a browser that intimately understands the expectations of the modern Web. As a step in that process, today we are excited to announce that Microsoft Edge users are getting an improved publishing experience due to recent interop efforts.
During the development process we began investigating customer reports of issues on Medium — one of the Web’s most popular personal publishing platforms. This lead us to an article, written by the Medium staff, which enumerated a handful of issues their editing platform had with Internet Explorer 10 and 11. These issues prevented IE from having full-access to Medium’s publishing platform.
We started the Microsoft Edge journey with the goal that “the web just works,” so we promptly reached out to Medium for a better understanding of the issues, and potentially identify workarounds. Medium determined that working around the issue would require a complex architectural change for them, so we instead determined that a fix would be needed in Microsoft Edge.
Our investigation revealed that the problem Medium was encountering was due to a non-standard legacy feature involving object-selection, which shipped in Internet Explorer 5. The feature was designed to provide a consistent modern forms-editor surface for partners (PowerPoint, Visual InterDev) who were building HTML-based forms back in the IE6 days. It gave the user the option to re-size any element which had layout on first click, and on second click would allow them to edit, if the element were editable.
In Medium’s case, there was a floating div element inside a contentEditable region which we allowed to be object-selectable and re-sizeable, resulting in gripper UI over the editable section. We had similar feedback bugs reported to us in the past, but due to the complexity of removing this behavior and the risks of a long bug trail, IE11 ultimately shipped with the functionality.
For Microsoft Edge, we were able to revisit this decision with the understanding that the web continues to evolve, and serves as the foundation for numerous rich editors. We are proudly moving towards a set of interoperable API’s that help web developers advance web-based editors without having to work around legacy features. With this we decided to remove nearly 1500 lines of C++ code from the browser’s engine, as well as any dependencies. The end-state is greater interoperability with other modern browsers, and reduced-complexity in our suite of editing features.
This is a good example of how we continue to prioritize interoperability over legacy compatibility. We would like to thank the team at Medium for this collaboration, and look forward to hearing your feedback on Twitter at @MSEdgeDev.