{"id":1499,"date":"2025-01-27T12:43:02","date_gmt":"2025-01-27T12:43:02","guid":{"rendered":"https:\/\/html5accessibility.com\/stuff\/?p=1499"},"modified":"2025-01-27T21:49:59","modified_gmt":"2025-01-27T21:49:59","slug":"ladybird-and-the-old-world-boulevardier","status":"publish","type":"post","link":"https:\/\/html5accessibility.com\/stuff\/2025\/01\/27\/ladybird-and-the-old-world-boulevardier\/","title":{"rendered":"Ladybird and the old-world boulevardier"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1500 size-full\" src=\"https:\/\/html5accessibility.com\/stuff\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-27-085741-e1737974453499.jpg\" alt=\"Mike wearing a black jacket with a colorful graphic on the back featuring a split design of a red and blue face with cartoonish features, including an &quot;X&quot; eye and a blunt with smoke swirling hanging from the mouth. Mike is standing in a hotel lobby at W3C TPAC 2024, arms outstretched, on a patterned carpet with beige and brown tones.\" width=\"593\" height=\"609\" srcset=\"https:\/\/html5accessibility.com\/stuff\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-27-085741-e1737974453499.jpg 593w, https:\/\/html5accessibility.com\/stuff\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-27-085741-e1737974453499-292x300.jpg 292w\" sizes=\"auto, (max-width: 593px) 100vw, 593px\" \/><\/p>\n<p>Mike[tm]Smith has been a friend and mentor of mine for many years. I first <a href=\"https:\/\/html5doctor.com\/html5-check-it-before-you-wreck-it-with-miketm-smith\/\">interviewed him<\/a> 10 years ago about his work on the <a href=\"https:\/\/validator.w3.org\/nu\/\">W3C HTML checker<\/a>. Today he is talking about the Ladybird browser:<\/p>\n<h2>Mike, tell us about you and your work<\/h2>\n<p>I live in Tokyo and I\u2019m employed by the W3C as part of the <a href=\"https:\/\/www.w3.org\/staff\/#mike\">W3C Japan team<\/a>. Since what the W3C does basically is to create new cross-browser web technologies for web developers to use to solve problems for people using the web, I guess I could say that like other W3C staff, the work I do is broadly about getting new web technologies out for web developers to use, and about helping web developers be successful at using those web technologies to get things done for everybody using the web.<\/p>\n<p>One of the ways I do that is by writing and contributing code patches for browser projects \u2014 by implementing features from <a href=\"https:\/\/www.w3.org\/standards\/\">W3C specs<\/a> in browser engines. And currently the browser-engine project I\u2019m mostly contributing to is <a href=\"https:\/\/ladybird.org\/\">Ladybird<\/a>.<\/p>\n<h2>Mike, tell us about Ladybird<\/h2>\n<p>Ladybird is a relatively new browser engine that\u2019s being written completely from scratch \u2014 without using code from any existing browser engine. So it\u2019s not yet another Blink\/Chromium shell, and not a WebKit port, and not a Firefox fork. Instead, it\u2019s completely independent \u2014 both in the sense that it doesn\u2019t rely on any code from any other browser project, but also in the sense that the project has made a promise to the community that it will never take funding from default search deals or from any other forms of user monetization, ever. Instead it\u2019s 100% funded solely by direct donations and sponsorships.<br \/>\nAnd in that sense I guess you could say that Ladybird intends to be community-owned, and driven by the priorities of the community. And given all that, I think it wouldn\u2019t be too inaccurate to describe Ladybird as a \u201cnext-generation\u201d browser.<\/p>\n<h2>Mike, tell us about your involvement with Ladybird<\/h2>\n<p>I\u2019m just one code contributor to Ladybird among the several-dozen or so people who contribute code patches to Ladybird each month. To put that in more context: there\u2019s a team of ten people or so who are the core maintainers\/reviewers, and most of them are actually employed by the Ladybird Browser Initiative to work full time on Ladybird \u2014 paid by the funding that Ladybird is receiving from donations and sponsorships \u2014 and then there are few dozen more people like me who are external contributors who submit patches each month to implement particular features or to fix bugs.<\/p>\n<p>The biggest area I\u2019ve been focusing on so far in my code contributions to Ladybird is: implementing features from the W3C accessibility-related specs such as the <a href=\"https:\/\/w3c.github.io\/aria\/\">ARIA spec<\/a> and the <a href=\"https:\/\/www.w3.org\/TR\/html-aam\/\">HTML-AAM spec<\/a> and the <a href=\"https:\/\/w3c.github.io\/accname\/\">Accessible Name spec<\/a> and so on. After some months of working on implementing those.<\/p>\n<p class=\"note\">We are now at the point where we have Ladybird passing nearly 100% of the accessibility-related tests in the Web Platform Tests test suite.<\/p>\n<h2>Mike, what is the importance of the Ladybird browser (engine)?<\/h2>\n<p>I think Ladybird is important to different people for different reasons. But I guess the biggest common reason is the independent nature of Ladybird, and the project\u2019s commitment to continuing to remain independent forever.<\/p>\n<p class=\"note\">In some sense, Ladybird can also be seen as a kind of \u201creference implementation\u201d of all the specs for the web platform: including the <a href=\"https:\/\/spec.whatwg.org\/\">WHATWG<\/a> and <a href=\"https:\/\/www.w3.org\/standards\/\">W3C specs<\/a> and the <a href=\"https:\/\/tc39.es\/ecma262\/\">EcmaScript spec<\/a> and so on.<\/p>\n<p>The Ladybird project philosophy with regard to specs is to implement them from scratch as closely as possible as they are actually written \u2014 rather than, say, just peeking at the code from other existing engines and following whatever they did, or, say, taking any shortcuts around what the specs say implementations should do.<\/p>\n<p>So, Ladybird is important to the W3C and the WHATWG and others in that Ladybird really is attempting to be a kind of reference implementation for all the specs \u2014 including, to some degree, to demonstrate or prove whether the specs as written can actually be independently implemented from scratch.<\/p>\n<h2>Mike, how do browser engineers (from the other engines) view Ladybird?<\/h2>\n<p>The ones I\u2019ve talked to about it have all been very positive and supportive.<\/p>\n<p>And I think in general that browser engineers like when there more engines out there other than the engine they work on themselves \u2014 rather than less. Among other reasons, having more people working in implementing the specs helps to expose possible bugs and problems in the specs \u2014 which can result in fixes or refinements getting made to the specs. And making the specs better helps everybody.<\/p>\n<h2>Mike, is the work on ladybird seen as important by the W3C?<\/h2>\n<p>I can\u2019t speak authoritatively for the entire W3C, but I can certainly say that I\u2019ve talked with quite a few people who are closely involved at the W3C see the work on Ladybird as important.<\/p>\n<h2>Mike, what language(s) are used in the development of Ladybird code?<\/h2>\n<p>Currently the Ladybird code is almost entirely <a href=\"https:\/\/en.wikipedia.org\/wiki\/C%2B%2B\">C++<\/a>. Even the Ladybird code for generating other necessary C++ (code that has to be built and that the browser needs when it runs but that, because of the nature of it, isn\u2019t in the git sources) is written in C++.<\/p>\n<p>That said, the project has a plan for going forward that involves implementing particular parts of the code in Swift rather than in C++. And some significant work has already started in that area.<\/p>\n<h2>Mike, how does somebody get involved in the development work?<\/h2>\n<p>There is a\u00a0 <a href=\"https:\/\/github.com\/LadybirdBrowser\/ladybird\/blob\/master\/Documentation\/GettingStartedContributing.md\">Getting started contributing to Ladybird<\/a> that\u2019s a great first stop \u2014 and the project also has its own <a href=\"https:\/\/discord.gg\/nvfjVJ4Svh\">Discord server<\/a> which anybody and everybody is welcome to join and come in ask questions and get help, or even just for general chat about the project.<\/p>\n<h2>Mike, in what ways can people support this work?<\/h2>\n<p>For people who are interested in contributing code, getting directly involved in the development work is a a really great way to support the effort.<\/p>\n<p>For people who want to help with funding to keep the work going, they can donate through both <a href=\"https:\/\/donorbox.org\/ladybird\">DonorBox<\/a> and <a href=\"https:\/\/polar.sh\/LadybirdBrowser\/issues\">Polar<\/a>. The Polar mechanism has the neat characteristic of making it possible for you to earmark your donation \u2014 or tie your donation \u2014 to work on resolving a particular issue in the Ladybird issue tracker. So you can either browse through the existing issues and find one that you\u2019d really like to see resolved\/implemented \u2014 or else, you can actually raise a new issue on your own (say, for some particular web-platform feature you want to see implemented), and then you can earmark\/tie your Polar donation to your own issue.<\/p>\n<p>Many thanks for your time and insights Mike!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1505\" src=\"https:\/\/html5accessibility.com\/stuff\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-27-105434.jpg\" alt=\"\" width=\"471\" height=\"392\" srcset=\"https:\/\/html5accessibility.com\/stuff\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-27-105434.jpg 940w, https:\/\/html5accessibility.com\/stuff\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-27-105434-300x250.jpg 300w, https:\/\/html5accessibility.com\/stuff\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-27-105434-768x639.jpg 768w\" sizes=\"auto, (max-width: 471px) 100vw, 471px\" \/><\/p>\n<p>Pic of Henny Swan, myself and Mike Smith at <a href=\"https:\/\/www.w3.org\/2008\/10\/TPAC\/Overview.html\">TPAC 2008<\/a><\/p>\n<h2>Further listening<\/h2>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/axUYL2I6KF8?si=oOWxQz6Ej--FmrIn\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<details>\n<summary>Lyrics<\/summary>\n<pre>Yonder, she's walking\r\nShe comes my way\r\nRed dress on\r\nHer long black hair\r\nTalkin' like\r\nWalkin' like\r\nWalkin' like\r\nShe comes to me\r\nOh baby, I love you so\r\nI need you now\r\nI want you back\r\nI can't go on\r\nHelpless baby\r\nEvil child\r\nI've known you well, and if you wanna stay, that's alright\r\nYou want me again\r\nAnd then you come to me\r\nWell, you know, that's, that's alright!\r\nThat's alright, that's alright!\r\nNow, she's gone\r\nShe's walkin' away\r\nRed dress on\r\nHer long black hair\r\nI love her so\r\nBut now she'll come runnin'\r\nAnytime I say\r\nWell, that's alright\r\nOh baby, I love you so\r\nI want you back\r\nI need you now\r\nI can't go on\r\nOh baby, I want you back\r\nI need you now\r\nI love you so\r\nI can't go on-\r\n<\/pre>\n<\/details>\n","protected":false},"excerpt":{"rendered":"<p>Mike[tm]Smith has been a friend and mentor of mine for many years. I first interviewed him 10 years ago about his work on the W3C HTML checker. Today he is talking about the Ladybird browser: Mike, tell us about you and your work I live in Tokyo and I\u2019m employed by the W3C as part [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1499","post","type-post","status-publish","format-standard","hentry","category-htmlaccessibility"],"_links":{"self":[{"href":"https:\/\/html5accessibility.com\/stuff\/wp-json\/wp\/v2\/posts\/1499","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/html5accessibility.com\/stuff\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/html5accessibility.com\/stuff\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/html5accessibility.com\/stuff\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/html5accessibility.com\/stuff\/wp-json\/wp\/v2\/comments?post=1499"}],"version-history":[{"count":9,"href":"https:\/\/html5accessibility.com\/stuff\/wp-json\/wp\/v2\/posts\/1499\/revisions"}],"predecessor-version":[{"id":1511,"href":"https:\/\/html5accessibility.com\/stuff\/wp-json\/wp\/v2\/posts\/1499\/revisions\/1511"}],"wp:attachment":[{"href":"https:\/\/html5accessibility.com\/stuff\/wp-json\/wp\/v2\/media?parent=1499"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/html5accessibility.com\/stuff\/wp-json\/wp\/v2\/categories?post=1499"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/html5accessibility.com\/stuff\/wp-json\/wp\/v2\/tags?post=1499"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}