Love this feature! Yahoo released the possibility to explore charts with audio, in the finance app, when using screen readers in 2019. You can do now something very similar since iOS 15.

https://coolblindtech.com/yahoo-finance-app-makes-charts-accessible-to-blind-and-partially-sighted-users/

Health app is open on the Steps section. When selecting the graph, there is a Audio Graph rotor. When it is selected, you can swipe down for a Describe Chart action, swipe down one more time for the Playing Audiograph action, swipe down again for Chart Details. When double tapping an Audio Graph screen is open. There is also a play button for playing the whole graph. The code shows you how you can conform to AXChart by overriding accessibilityChartDescriptor and it shows how you can build the data series descriptor by mapping your data model into AXDataPoints.

You can move your finger in the x-axes, and it will play a sound with a different pitch depending on the data in the y-axes, making it easier to identify trends in the graphs.

You need to conform to the AXChart protocol by implementing the accessibilityChartDescriptor property.

Documentation: https://developer.apple.com/documentation/accessibility/audio-graphs

WWDC21 session: https://developer.apple.com/videos/play/wwdc2021/10122/

You may also find interesting...

Hacks are accessibility’s worst enemy. An example. There is a ‘trick’ floating on the internet: if you want a button with an icon to the right of the text, set the semantic content attribute to force right to left. Great way to create focus traps.

Sometimes your UI will just not scale for large text sizes. Simple changes, for large sizes, like disposing elements vertically instead of horizontally, reducing the number of columns, and allowing more lines of text, can do the trick most times.

An alternative layout for large font sizes can be provided with Auto Layout by having three sets of constraints (common, default constraints, and alternative constraints) and activate/deactivate them depending on the content size category.

Created in Swift with Ignite.

Supporting Swift for Swifts