Done in September
Here’s what happened in September to the code, data, and tools that support MDN Web Docs:
- Launched MDN payments
- Improved MDN’s accessibility resources
- Removed 15% of KumaScript macros
- Shipped tweaks and fixes by merging 379 pull requests, including 66 pull requests from 38 new contributors.
Here’s the plan for October:
Launched MDN payments
We’ve been thinking about the direction and growth of MDN. We’d like a more direct connection with developers, and to provide them with valuable features and benefits they need to be successful in their web projects. We’ve researched several promising ideas, and decided that direct payments would be the first experiment. Logged-in users and 1% of anonymous visitors see the banner that asks them to directly support MDN. See Ali Spivak’s and Kadir Topal’s post, A New Way to Support MDN, for more information.

Payment page on MDN
The implementation phase started in August, when Potato London was hired to design and implement payments. Potato did an amazing job executing on a 5-week schedule, including several design meetings, daily standups, and a trip from Bristol to London to meet face-to-face during the MDN work week. Thanks to the hard work from the Potato team, including Charlie Harding, Josh Jarvis, Matt Hall, Michał Macioszczyk, Philip Lackmaker, and Rachel Lee.
Mozilla staff across the organization helped keep this project on schedule, from writing copy to security reviews to pull request reviews and fixes, including me, Ali Spivak, Caglar Ulucenk, Diane Tate, Havi Hoffman, Kadir Topal, Kevin Fann, Ryan Johnson, and Schalk Neethling.
Improved MDN’s accessibility resources
After the work week, we met with accessibility experts for the Hack on MDN event. Volunteers and staff improved MDN’s coverage of accessibility. This included discussions of accessibility topics, improving and expanding MDN’s documentation, and writing related blog posts. It also included code changes, improving MDN’s color contrast and adding markup for screen readers. See Janet Swisher’s Hack on MDN: Better accessibility for MDN Web Docs for the details.
Seren Davies (@ninjanails) was there, and many nails were painted.

Clockwise from the top: Chris Mills (headless mode), Glenda Sims, Bruce Lawson (with camera), Irene Smith, Estelle Weyl, Michiel Bijl, and Seren Davies
Removed 15% of KumaScript macros
The MDN team got together for a week at the London office to reflect on the quarter and plan the coming year.
We discussed KumaScript, our macro language and rendering service that implements standardized sidebars, banners, and internal links. It’s been easier to analyze macros since we moved them to GitHub in November 2016. We’re happy with the performance gains, but code reviews take forever, translations are hard, and we’re slow to write tests. These issues contributed to an incident in August where a sidebar macro was broken, and all the API reference pages showed an error for a day (bug 1487640).
Staff is getting impatient with KumaScript, and wants to replace it with something better. Florian wrote up the notes from the meeting on Discourse as Next steps for KumaScript.
Florian, Will Bamberg, and Ryan Johnson started on the first step, identifying and removing unused or seldom-used macros, such as hello.ejs. (PR 849).
The team removed 72 macros in about 2 weeks, and will continue removing them for the rest of the year. This will leave a smaller number of important macros, and we can analyze them for the next steps in the project.
Shipped tweaks and fixes
There were 379 PRs merged in September:
- 135 mdn/browser-compat-data PRs
- 83 mdn/kumascript PRs
- 47 mozilla/kuma PRs
- 38 mdn/interactive-examples PRs
- 28 mdn/infra PRs
- 24 mdn/bob PRs
- 10 mdn/data PRs
- 4 mdn/learning-area PRs
- 3 mdn/webaudio-examples PRs
- 2 mdn/dom-examples PRs
- 2 mdn/webextensions-examples PRs
- 1 mdn/django-locallibrary-tutorial PR
- 1 mdn/ansible-jenkins PR
- 1 mdn/css-examples PR
This includes some important changes and fixes:
EmbedLiveSample
: Avoid XSS, and addallow=
parameter (KumaScript PR 786), from me. This and related PRs fix live samples, like media constraints, that broke when Chrome and Safari began enforcing feature policies in an<iframe>
. See Google’s explainer page, Policy Controlled Features, and bug 1482159.- End compat tables beta (KumaScript PR 860) from Florian Scholz, and Kuma PR 4988 from Stephanie Hobson. With 96% of the data migrated, and more than 6,500 pages using the new layout, it was time to stop calling it a beta.
- First chunk of unittest fixes for Python 3 (Kuma PR 4910), from Anthony Maton. We plan to switching to Python 3 by the end of the year.
- Update
<div>
example to use CC0 image (Interactive Examples PR 1088), from Eric Shepherd, a continuing project to get consistent licensing for the interactive examples repository. - Add first iteration of console (bob PR 129), from Schalk Neethling, a new feature for WebAPI interactive examples to see the output of JavaScript code snippets.
- Remove certain contributions as part of relicensing plan (Data PR 294), and Change repo license to CC0 (Data PR 301), from Chris Mills. This is part of a 4 month effort to change the license of the mdn/data repo and mdn-data npm package to CC0-1.0, to allow the data to be used in similar contexts as the mdn-browser-compat-data npm package and data.
66 pull requests were from first-time contributors:
- Update compatibility data for
onpopstate
event (BCD PR 2697), from Abhishek Gupta. - Update the data for
ScreenOrientation
(PR 2698), from Christophe Coevoet (first contribution to BCD). - Update
flex-grow
IE support (BCD PR 2701), from Nils Lundquist. - Add compat data for CSS
::-ms-value
pseudo-element (BCD PR 2708), from Andrew C. Dvorak. - Update compat data for
Worker
name
option (BCD PR 2709), from Johan Holmerin. - Add compat data for the webextension
find
optional permission (PR 2710), and Add compat data for the webextensiontabHide
optional permission (PR 2719), to BCD from glacambre. - Update
upgrade-insecure-requests
Safari compatibility (BCD PR 2729), from David Harbage. - Chrome does not defer scripts in XHTML (BCD PR 2754), from Franklin Tse.
- Fix
<script>
integrity
for Edge and Safari (PR 2765), Update standard status forimmutable
response (PR 2793), and 3 more PRs to BCD from Franklin Yu. - Add JavaScript dynamic import support for Safari and IE (BCD PR 2785), from dhodder.
- Add
partial-implementation
to CSS’salign-content
(PR 2786), Fix typo inNode.ownerDocument
notes (PR 2787), and 3 more PRs to BCD from Maria Paktiti. - Update
HTMLElement.click
support table (PR 2789), and UpdateHTMLFormElement.submit
compat table (PR 2796), to BCD from Daniel Smith. - Fix
RTCPeerConnection
connectionState
compat information (BCD PR 2815), from Philipp Hancke. - Mark the
<menuitem>
element as deprecated (PR 2837), Mark<contextMenu>
as deprecated (PR 2838), and 5 more PRs from Michael[tm] Smith (first contributions to BCD). - Add dynamic import status for MS Edge (BCD PR 2844), from dennisameling.
- Correct
RTCPeerConnection.canTrickleIceCandidates
support (BCD PR 2849), from Sean Bright. - Update node.js support for
Date[@@toPrimitive]
(BCD PR 2865), from Fayti1703. - Add Safari support for compatibility of
navigator.onLine
(BCD PR 2866), from Márcio Lucas R. Oliveira. - Comment out the indicator
:matches(…)
block for now (PR 4961), from ExE Boss (first contribution to Kuma). - Reduce web font usage (PR 4967), and Removing preload for Zilla Bold (PR 4982), to Kuma from tkadlec.
- MDN Contribution payment flow implementation (PR 4970), Contribution views flow (PR 4976), and 3 more PRs to Kuma from Josh Jarvis.
- Add more helpful technique for accessing
Promise
(Interactive Examples PR 1124), from Dan Levy. - Handle new Jenkins / AWS services (PR 1135), Make
irc-notify.sh
executable again (PR 1136), and Makeawscli
profile optional (PR 1137), from Ryan Johnson (first contributions to Interactive Examples). - Each radio button in the group should have distinct
value
attribute (Interactive Examples PR 1141), from Konstantin Rouda. - Fix incorrect label selector in password example (Interactive Examples PR 1147), from Gene Wood.
- Updating picture example to work better on small screens (PR 1149), from Olle Lauri Boström (first contribution to Interactive Examples).
- Increase colour contrast of comments in code examples (Interactive Examples PR 1159), from Seren D.
- Add password info for AES backup decryption (PR 63), from Dave Parfitt (first contribution to infra).
rm -rf elbs
(PR 86), from Josh Mize (first contribution to infra).- Update syntaxes to match latest specs (Data PR 104), from Albert Scheiner.
- Add the
:matches(…)
selector (PR 284), Add the||
column combinator (PR 285), and Add the:has(…)
selector (PR 286), from ExE Boss (first contributions to Data). - Fix filename path in fallback paragraph (learning-area PR 94), from RACZ Andras.
- Remove unused variable (PR 95), and Fix undefined variable (PR 96), to learning-area from Xu Chunyang.
- Changed reference to female chickens from cock to hen. (PR 99), from Irene Smith (first contribution to learning-area).
- Add IIR Filter Demo (PR 10), and Add Audio Basics Demo (PR 11), to webaudio-examples from Ruth John.
- Add IIR Filter Demo (PR 12), from Chris Mills (first contribution to webaudio-examples).
- Use
switch
,srcObject
, returnresponse.blob
. Attempt to make video download not one time. (dom-examples PR 28), from ZaneHannanAU. - Fix grammar error in
models.py
(django-locallibrary-tutorial PR 22), from Leonard Meerwood. - Enable
apt
to do automated security updates (PR 4), from Ed Lim (first contribution to ansible-jenkins).
Planned for October
October is the start of the fourth quarter. We have a few yearly goals to complete, including the Python 3 transition, the next round of the payments experiment, and performance experiments. This quarter also contains major holidays and the Mozilla All Hands, which mean it has about half the working days of other quarters. Time to get to work!
Move to Mozilla IT infrastructure
In October, Ryan Johnson, Ed Lim, Dave Parfitt, and Josh Mize will complete the setup of MDN services in the Mozilla IT infrastructure, and switch production traffic to the new systems. This will complete the migration of MDN from Mozilla Marketing to Emerging Technologies, started in February 2018. The team is organizing the switch-over checklist, and experimenting with the parallel staging environments.
The production switch is planned for October 29th, and will include a few hours when the site is in read-only mode.
About John Whitlock
John is a web developer working on the engine of MDN Web Docs