Archive for October 14, 2022

Friday, October 14, 2022

iOS 16 Includes Dvorak Keyboard

Antranig Vartanian (via Hacker News):

[The] main reason I never moved to Dvorak properly was always a device not having a proper keyboard. Sometimes it was my Android phone with a weird ROM, but most of times it was my iPhone.

However, I just learned that Apple shipped the Dvorak layout with iOS 16.


I use swiping almost exclusively, and HN has discussed before how Dvorak is actually really bad for that.

Having all the vowels next to each other, and so many words in English that differ just by vowels, is actually really hard on the swiping algorithm. As I mention in the comments of that article, it is likely that QWERTY is not optimal for that use case either, but it’s a lot closer.


I use dvorak for my computer, but I think the design goals of QWERTY are actually useful for the small keyboard of a phone being used with thumbs.

It was designed to put diphthongs on opposite sides of the keyboard so that a mechanical typewriter wouldn’t jam as frequently. I think avoiding “jams” with my thumbs is definitely the way to think about it.


As a former iOS engineer at Apple, and a dvorak user, I can verify that this is exactly the thinking (during my time) of why dvorak support wasn’t a development priority. The properties which make it good for typing make it bad for a phone keyboard.

Joe Rossignol:

On an iPhone updated to iOS 16, the Dvorak layout can be enabled in the Settings app under General → Keyboard → Keyboards → English → Dvorak, alongside existing QWERTY, AZERTY, and QWERTZ options. Dvorak is only available for English.

Safari Web Extension Storage Callbacks in the Wrong Order

Jeff Johnson (tweet):

“In a Safari web extension on both macOS 12 and iOS 15 (I filed this bug under Mac because there was no cross-platform category), if you call storage.local.set and then storage.local.get, the callbacks are called in the opposite order, and indeed the opposite order from Chrome and Firefox extensions. Attached is a sample Xcode project demonstrating the bug.”


By design, Safari web extensions use the same cross-platform API as Chrome and Firefox extensions so that extension developers can share code across browsers and easily port their extensions to Safari from other browsers. Thus, a behavioral difference between Safari and the other browsers means that extension developers can’t share code, defeating the fundamental design of Safari web extensions. For this reason alone, I would argue that the behavior of Safari extension storage callbacks is a bug and not a feature.

This is far from the first time I’ve seen the “Works as currently designed” response for Apple.


Charts Guidelines

Mike Stern:

Not one but two (!) new pages in the HIG about charts.

Patterns > Charting Data

Components > Charts

Linda Dong:

The Human Interface Guidelines now has searchable ✨CHANGELOGS✨