Rossen Atanassov
Posted on December 18, 2019
To the W3C AC representative: About the Future of the Web
It has been 30 years since the founding of the World Wide Web. Over the years the Web has grown from an academic experiment to an indispensable part of our social, economic, and even political lives. The W3C guides the Web's evolution by bringing together people with problems, concerns, and ideas to share with those who can shape them into standards that are implemented and used on the web. Within the W3C, the Technical Architecture Group (TAG)'s mission is to look across the broad range of proposals and specifications, and ensure that the Web makes sense, that it is heading in the right direction, that new features of the Web are safe, accessible to all, preserve the user’s privacy, and are ready for international deployment across all languages—not just to English-speaking countries.
This important mission and its potential impact on how the Web evolves means that the TAG requires people who are not only technically qualified and experienced in designing features for the Web, but also those who will represent its core values, including the often-overlooked needs of internationalization (i18n), accessibility, and privacy.
During this holiday season and ending on 10 January 2020, there is an election for three seats on the TAG. Four candidates are hoping to get elected by the W3C's Advisory Committee (AC) representatives. I am one of those candidates, and I'm writing this for two reasons: First, to encourage you to vote (or to encourage an AC representative you know to vote). Less than 500 people have the ability to vote in this election, and historically, only about 20% of AC representatives show up to cast a vote. This is important—more voices matter. The second reason that I am writing this is that I believe that in order to make such an important decision, you deserve to know as much about your candidates' background, so I'd like to introduce myself:
My name is Rossen Atanassov and I’m running for the TAG.
From Cyrillic to CSS Writing Modes and beyond
My journey with the Web began in its early days while I was still growing up in Bulgaria. As a nascent web developer who at the time was reading and writing predominantly in Bulgarian, I ran into major limitations when it came to the display of Cyrillic content. Rather than give up on this relatively new platform, I dreamed of better support for internationalization (i18n) on the Web. Many years later, I was able to realize this dream by having the opportunity to work directly on what was at the time the most popular web browser—Microsoft’s Internet Explorer.
My career with IE started as a layout engineer where I turned my passion for computational geometry and i18n into hard work to ensure great support for multilingual typography on the Web. I partnered with the Windows typography team to land significant changes that improved the support of vertical layout inside IE8, 9 and beyond. For example, I recall implementing tate-chu-yoko (horizontal in vertical) support just to ensure it would remain a feature of the CSS Writing Modes spec that was just published as a PR (now a REC) during TPAC 2019 in Fukuoka, Japan.
After more than a decade and a couple of rendering engines later, I continue to be passionate about supporting the global needs of the Web. As a member of the TAG I will be an advocate for the i18n community, and vigilant to ensure features make sense across all geographies. Together with Sangwhan Moon, the TAG will have great and diversified expertise for features and concerns of the East Asian Web developer.
Discovering new possibilities in accessibility
Before embarking in my professional career with Microsoft, I had a profound experience as a university freshman that led me to gain a great appreciation and empathy for people with accessibility needs. It all started with a beautiful, young optometry student (my wife!)…
At the time, the University of Waterloo, Canada, ran a lab for low vision research (now the Centre for Sight Enhancement). As any new student, my wife had to take a tour of the lab and invited me to join her. We observed a large spectrum of technology being used to improve the quality of life for people with low vision and that had a deep effect on me. I remember thinking how rudimentary and yet effective the physical magnifiers were compared to the PCs on the other side of the room that were displaying highly pixelated versions of what was being observed. It was then that I saw a screen reader for the first time in my life and was quite frankly blown away by its ability to read MS Word documents! I thought: if my wife is studying to become Doctor of Optometry and give people the gift of better sight, I can do the same through technology someday.
Fast-forward to 2015. I’m leading a project to re-write the accessibility stack of Microsoft Edge. We started working with the Accessible Rich Internet Applications (ARIA) working group to help clarify implementation details and mappings of web content to the Windows platform API. At the same time, we engaged closely with screen reader partners such as NVDA, JAWS and Microsoft‘s own Narrator to improve the end-to-end pipeline, from accessible-by-default HTML controls and rich ARIA annotations to screen reader controls, patterns, and events. All of these efforts resulted in a world-class accessible web engine that was the first to accelerate our score from 56% to 100% on html5accessibility.com and address a lot of customer pain and requests.
At present I am excited to share that we are finishing a similar effort in the next version of Microsoft Edge. This time however, all contributions and accessibility improvements are going directly to Chromium so that even more of the ecosystem will benefit – web browsers, PWAs, apps built on top of Electron and other Chromium-based stacks! These are great results but there is so much more work to be done.
I am excited about the opportunity to work with Alice Boxhall on the TAG and continue advocating and advancing accessibility across the web platform.
The case for user privacy
I am honored to be part of a team and company that cares deeply about empowering people. One way I help empower people on the Web is by ensuring the software we build instills confidence and control over their activities and personal data. One of the biggest challenges for the Web today is the exploitation of individual user privacy through mismanagement or deliberate abuse of personal information. It’s not enough to accept this as the price for participation on the Web today—we must do better.
Public policy and regulation will help, and technical solutions will also be effective in addressing this challenge. But what better position to be able to make real progress on those assurances than working directly for the web browser? I’m looking forward to joining my fellow privacy advocate Tess O’Connor from Apple on this journey.
Our team recently framed Web privacy as a fundamental human right, and documented our principles of Transparency, Control, Respect, and Protection that guide our approach to re-claiming privacy on the Web. From P3P many years ago to adding tracking prevention to current builds, Microsoft has a rich history of building privacy solutions to help benefit end users on the Web and I’m excited to be a part of this new journey. No single browser vendor, however, will be able to change the industry by themselves. By joining the TAG I hope to play a big role in bringing together browser privacy principles and community privacy needs/concerns with the goal of feeding back this information to where it can make the most difference.
New layouts, CSS optimizations and Chairing CSSWG
At the heart of my passion for internationalization and accessibility lies the amazing technology that brings so much of it to life—the browser’s layout engine. I was originally drawn to it because I knew it was the code to learn in order to fix the issues I experienced with Cyrillic fonts and it would be the platform to launch new capabilities for users with accessibility needs. The layout engine also provides an experimentation platform that allows us to test new ways of bringing traditional forms of layout to the Web. (And was my introduction to CSS—more on that later.)
The first time I re-wrote the browser’s layout engine was during IE8. The team and I achieved the desired outcomes of performance and extensibility and learned a lot. Then we did it again with Microsoft Edge. This time we wanted a fast, extensible layout engine that could enable high quality magazine-like experiences on the Web. At the time HTML was mostly mature in terms of capabilities but the presentation layer lacked critical primitives that were required to enable advanced layouts. We found a willing partner in Adobe, who shared similar goals, and worked together to propose and add support for CSS Regions, CSS Exclusions, and CSS Shapes. We also implemented the best support for multicolumn layout at the time. The combination of all these features enabled the richness of our Microsoft Edge built-in ePub reader.
Another favorite experience was bringing CSS Grid layout to the Web. With that first version of CSS Grid we had a truly adaptive application UI on the Web. Our application partners used the suite of new layout capabilities to power beautiful adaptive experiences in Windows built-in apps: from News, Travel, and Sports, to Mail. Other industries, including digital publishing, took notice—the Web was being renewed as a front-runner in online publishing capability. It took a village of browser implementers and independent companies like Igalia and many years for the Web to enjoy interoperable CSS Grid layout in nearly all browsers. Other specs will follow. I loved the whole experience from problem statement to community involvement to implementation polish. I expect to be able to draw from this and related experiences when helping others who will be bringing the next CSS Grid-like feature to the TAG.
The common theme for all features discussed so far is that the key work happened at the CSS Working Group (CSSWG).
My relationship with the CSSWG started immediately after I got involved with the layout engine. While working to improve our browser’s standards compliance (Acid 2 anyone? 😊), I spent my days reading a printed (yes, printed) version of the CSS2.1 spec (almost a REC). It took a lot of sticky notes to help me navigate, relate and redirect between all sections! There were times I thought it would be impossible to decipher what was required to implement it (e.g., the definition of “block” – used throughout the spec). So, after a couple of years implementing CSS 2.1, I decided to join CSSWG and ensure that other implementers wouldn’t have to deal with so much ambiguity. One thing led to another and I found myself editing several specs – CSS Regions, CSS Exclusions, CSS Grid etc. A couple of years more and I was appointed and still serve as the co-chair of the working group! In addition to the CSSWG itself I co-lead the formation of CSS Houdini TF and CSS Accessibility TF where I also serve as co-chair.
A lot of my focus has been on improving the productivity of our working groups. Over the years I’ve managed to make some optimizations, including the following:
- Transitioned the group’s work out of the www-style mailing list and into GitHub
- Pioneered parallel tracks of discussions during face-to-face meetings – a significant boost of productivity to a mega working group like ours
- Streamlined the spec publishing pipeline by reducing process and the need for human intervention
Working with this group of highly motivated individuals helped me appreciate the power of consensus-driven standards. Today, more than ever, I am committed to evolve the Web through the standards process—especially now that I have left my layout code behind and started contributing to Chromium. Removing friction for users while ensuring collaborative, standards based, and interoperable features are some of my primary objectives as a senior engineering leader on the Microsoft Edge team. I look forward to partner with David Baron on the TAG in help to bring balance between various feature trade-offs and their stakeholders.
No stranger to review boards
In what can be considered my most direct qualification for the TAG, I have been serving on the Windows API review board since 2012.
The Windows API review board has a function to Microsoft that is very similar to the TAG and W3C. The review board advises and steers the overall shape and capabilities of the Windows platform.
During my time on the board I have managed both technical and process improvements while helping engineers across the company develop their architectural skills. For example, I grew accustomed to spotting and helping teams with suboptimal design patterns and leading them to better and more extensible API outcomes. Each platform has its distinctive patterns and best practices and I am looking forward to joining other TAG members in reviewing and developing best practices for the Web.
A long road ahead
The TAG has a lot of work to do. Each quarter TAG members review the growing backlog of approximately 100 proposals, debate important social, economic, and political questions as they relate to Web architecture, and expand the documentation of good design principles. Occasionally they even manage to find time to author influential Findings. To that end I bring over seven years of experience performing comparative feature and API reviews and know how to enact processes that streamline and make reviews as efficient as possible. My personal connection with the i18n community as an implementer and an advocate, background in listening to and bringing real accessibility solutions to customers, and passion for trust and privacy will ensure the TAG continues to have a well-rounded perspective on these core Web principles.
I'm running for the TAG because I believe my experience and expertise in solving complex problems and creating robust solutions in the areas of internationalization, accessibility, privacy and trust on the Web through collaboration and consensus will be a valuable asset.
I love the Web. I believe in the Web, and I hope you do too. Please vote!
A note on voting
Fun fact: there are many different voting systems. TAG elections use STV, which means you get to vote for all the candidates you want (in rank order), not just one per-open-position. To reduce negative side-effects of this electoral system, more votes are better! Of the many hundreds of W3C Advisory Committee (AC) members, relatively few (maybe 25%) exercise their right to vote. So please, if you are or know a W3C AC representative (those with the responsibility to vote in these elections), please encourage them to rank the nominees and put that rank in their vote for each candidate!
Thank you for reading, and I hope I have earned your support.
-Rossen Atanassov
Posted on December 18, 2019
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.