News for hackers. Stuff that matters.
Re:Apple previews Live Speech, Personal Voice, and more new ... by frankus on Tuesday May 16, 2023 @10:12AM (#35962158)
I’ve been digging into Apple’s (existing) accessibility features last week and it made me think about what (for lack of a better term) an “accessibility first” app architecture might look like. Current app UIs are all about how to visually represent the objects you can interact with and the actions you can take on them, and then accessibility features are layered on top. (Warning: half-baked idea that’s probably been tried countless times) what if you started with semantic information about the objects and the actions you can take on them and then the GUI is just one of several interaction modes (along with voice, keyboard, CLI, etc)?
Re:Apple previews Live Speech, Personal Voice, and more new ... by jdlshore on Tuesday May 16, 2023 @11:04AM (#35962833)
This was the original premise of the Smalltalk Model-View-Controller architecture. (Not to be confused with web MVC, which reused the name for something else.) The “Controller” in Model-View-Controller refers to the input device, and a given Model can have multiple independent Views and Controllers. The “Model” is supposed to an object that’s a semantic representation of the underlying thing being manipulated.

One of the visible impacts of MVC is that changes occur in real-time: you modify a value in a dialog, and everything affected by that value instantly updates. This is already common in Mac apps (in contrast to Windows apps, which typically want you to press “ok” or “apply”), so it wouldn’t surprise me if Apple was already using a modern MVC variant. It’s a well-known pattern.

Re:Apple previews Live Speech, Personal Voice, and more new ... by alexjm on Tuesday May 16, 2023 @01:29PM (#35965045)
In the Apple documentation for MVC, "controller" refers to a class that sits between the model and view. When data changes in the model, it updates the view; and when the user interacts with the view, it passes events to the model.

https://developer.apple.com/library/archive/documentation/Ge...

Elsewhere, the documentation contrasts the Cocoa and Smalltalk versions of MVC where all three pieces communicate directly:

https://developer.apple.com/library/archive/documentation/Co...

Like you said, this separation means you can "drive" the same model through different UIs. That's one of the things I always thought was cool about AppleScript support -- the app exposes a different interface to the same model.

Re:Apple previews Live Speech, Personal Voice, and more new ... by w10-1 on Tuesday May 16, 2023 @02:01PM (#35965446)
Obviously developers who design semantically for different UIs would be far, far ahead. And Apple API's can be used there.

The harder problem is building accessibility API's for oblivious developers, so they can retrofit at the last minute before release (as usually happens). Apple's done a pretty good job there, harvesting the semantics of existing visual UI's to adapt for voice/hearing.