Skip to content

Commit

Permalink
partial change of cases
Browse files Browse the repository at this point in the history
  • Loading branch information
crescentheaded committed May 8, 2024
1 parent 730742a commit e0d7461
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ Here is the list of some **Accessibility Features** available on iOS.

In this book we're not going to take a precise look at each of them separately, but only at the features that have to be **implicitly supported** to *function*.

### Accessibility Features
@Links(visualStyle: detailedGrid) {
- <doc:VoiceOver>
- <doc:VoiceControl>
Expand All @@ -80,16 +81,16 @@ Each article above contains an overview of a feature that explains **what this f

@Image(source: placeholder-image, alt: "")

## Adopting Accessibility Features
## Supporting Accessibility Features

### Accessible User Interface
### Accessible user interface
[**Accessibility Features**](<doc:AccessibilityFeatures>) use the **semantic language** of an application and change some of its *interfacial* properties to alternate the **usability** of its interface. To see how accessibility is **integrated to interfaces** proceed to [**Accessible Interface**](<doc:AccessibleUI>) -- the heading article of **Integrating Accessibility** volume, which is purposed to break down the **accessibility adoption** process.

@Links(visualStyle: detailedGrid) {
- <doc:AccessibleUI>
}

### Accessible User Experience
### Accessible user experience
Due to the **singularity of semantic language** within the app, supporting a particular feature usually fully or partially enables *other* features to be used in the app, but it is important to understand the meaning of specific **accessibility attributes** of **mobile interfaces** to provide the *equal experience*. To know how *user experience* changes with various [**Accessibility Features**](<doc:AccessibilityFeatures>) used visit the [**Accessible Experience**](<doc:AccessibleUX>) page, which is a heading article of the detailed volume dedicated to **polishing accessible experience**.

@Links(visualStyle: detailedGrid) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ Navigate through iOS by using various switches

[![Alternate Text](sady)](https://www.youtube.com/watch?v=XB4cjbYywqg)

### Switch Access Scanning
### Switch access
Typing on keyboard, touching a screen and using pointers to move a cursor are examples of **direct selection** techniques. On the contrary, there is the **indirect selection**: such methods firstly *scan* the **collection of items** forming the interface. **Switch access**, just as screen-reading technology enables **manual** or **automated scanning** of the elements on the screen.

### Variety of Switches
### Variety of switches
Anything sensitive to human *intentional* input may be used as a switch. It may be a **button**, a **pedal** (foot switch), a hardware **interface sensitive to breathing or muscle contraction**, **face recognition software** and **eye tracking devices** -- literally anything that is able to *recognise signals* sent by its user.

@Row {
Expand Down Expand Up @@ -85,7 +85,7 @@ Anything sensitive to human *intentional* input may be used as a switch. It may
}
}

### Switch Control Users
### Switch Control users
The feature is essential for those who **lack the ability to operate the device** the conventional way: people with physical and cognitive limitations that won't allow them to use the device with particular *dexterity*.

@Image(source: sady-at, alt: "") {
Expand All @@ -98,7 +98,7 @@ Switches are often placed on *mobility aid constructions* such as wheelchairs an
**Stephen Hawking**, a scientist and an author had **ALS** (**A**myotrophic **L**ateral **S**clerosis) and, probably, is the most recognised user of assistive technology
}

### Connecting Switches to a Device
### Connecting switches to a device
An important notice: **switches cannot be connected to a computer directly**. Instead, a middleman is required -- a **switch interface** device to which the switches are *plugged*.

@TabNavigator {
Expand All @@ -124,7 +124,7 @@ An important notice: **switches cannot be connected to a computer directly**. In
}


## iPhone as a Switch
## iPhone as a switch
An iPhone *itself* can be used as various switches, since the device is *receptive* to a wide range of inputs due to diverse **sensors**, such as a **gyroscope**, an **accelerometer**, **FaceID powered camera**, and so on, that are *built* into the phone.
@Video(source: placeholder-video, alt: "")

Expand All @@ -134,20 +134,20 @@ An iPhone *itself* can be used as various switches, since the device is *recepti
The mechanism is very similar to **Grid Layout** of [**Voice Control**](<doc:VoiceControl>).


### Switch Control Head Tracking
### Switch Control head tracking
On iPhone models with [**FaceID**](https://en.wikipedia.org/wiki/Face_ID) it is possible to use *head movements* and *facial expressions* as **controlling actions**. As for today Switch Control recognises 9 different head movements and allows to bind one of 13 actions to such control option. Additional settings provide *adjustability* of **recognition sensitivity**, **tracking modes** and **pointer speed**.
@Video(source: misha, alt: "")


## Switch Control Settings
## Switch Control settings
To turn Switch Control on, in **Settings** app choose **Accessibility** settings and find **Switch Control** feature.
@Image(source: sc-setup, alt: "")

> Warning: Do not turn Switch Control on unless you are confident that you can turn it off. Switch Control changes the control of the device to the most unusual state (out of other Accessibility Features) so it may be very difficult or nearly impossible to turn it off for an unfamiliar user.


## Adapting Applications for Switch Control
## Adapting applications for Switch Control
Support of Switch Control in accessible apps is represented by the accessible design of **navigational patterns**: the easier it is to *navigate within the app* the more delightful the experience for this feature users will be.


Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Voice Control

Use voice to operate iOS
Use your **voice** to operate iOS

@Metadata {
@PageColor(blue)
@TitleHeading("Command By Voice")
@TitleHeading("Command by Voice")
@PageImage(
purpose: icon,
source: "voice-control",
Expand All @@ -23,14 +23,14 @@ Use voice to operate iOS

[![Alternate Text](ian)](https://www.youtube.com/watch?v=eePfgI2TT_Q)

## How Does It Function
## How does it function
The mechanism of this technology is to *recognise* its user's **voice commands** and perform appropriate *actions*.

@Image(source: "vc-mech", alt: "") {
The recognition converts the **audial input** of the user to **textual speech** and *looks for an element* with **matching description**.
}

### Voice Control Users
### Voice Control users
Such technology is used by those people who **cannot operate the device physically**.

@Row {
Expand All @@ -49,7 +49,7 @@ Such technology is used by those people who **cannot operate the device physical

They may have **motor** or **cognitive** limitations of both **temporary** or **permanent** kinds, so **Voice Control** is helpful as for a person who can't touch their phone during **driving** or **holding a child** as for someone who *lacks* the ability to control something by **touch** all the time.

### Voice Control Is Not Siri
### Voice Control is not Siri

@Image(source: sirikit, alt: "") {
Visit SiriKit official documentation
Expand All @@ -63,7 +63,7 @@ They may have **motor** or **cognitive** limitations of both **temporary** or **

It means that **Voice Control** is *not relying on scripts it knows* but takes the system's code and allows its user do **whatever** they want just as if they used the device the regular way.

### Grid Layout
### Grid layout
Yes, the **Voice Control** experience is heavily influenced by *accessibility* of a particular app, but even if there is **no accessibility** adaption work done *at all* the user may still use the app. It is possible in **Grid Layout** mode of the feature: a case of **Voice Control** GUI where the screen is shattered into small enumerated parts so the user can simulate *touching* a particular point of the screen by **calling the number of the cell**.

@Image(source: grid, alt: "") {
Expand All @@ -79,10 +79,10 @@ This layout option is truly **unconditional** because other two depend on the *a
@Image(source: vc-layouts, alt: "")


#### Voice Control Is... Switch Control
#### Voice Control is... Switch Control
Considering the fact that we are in **iOS Accessibility Handbook** and have to have a *deeper understanding* of [**assistive software**](<doc:AccessibilityFeatures>), **Voice Control** is essentially a highly sophisticated case of [**Switch Control**](<doc:SwitchControl>). It just uses a *microphone* as a **switch interface** and has much more **actions** possible to perform.

### Languages Voice Control Understands
### Languages Voice Control understands
At the moment **Voice Control** is only available in English, French, German, Spanish, Japanese and Chinese languages, so it won't be possible to fully operate a device by speech it does not yet support.

### Speechless Voice Control
Expand All @@ -99,7 +99,7 @@ This feature is useful for those people who **cannot produce speech** but are st
To turn **Voice Control** on go to **Settings** and find **Voice Control** feature in **Accessibility** settings.
@Image(source: vc-setup, alt: "")

## Supporting Voice Control in Applications
## Supporting Voice Control in applications
Accessibility adaption for Voice Control can be boiled down to enabling the interactive elements to be accessible and giving them succinct localised names.

## Naming guidelines
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ A **screen reader** native for iOS

@Metadata {
@PageColor(blue)
@TitleHeading("The Screen Reader")
@TitleHeading("iOS Screen Reader")
@PageImage(
purpose: icon,
source: "voiceover",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Make your iOS applications **accessible**

@Metadata {
@DisplayName("iOS Accessibility Handbook")
@TitleHeading("Educational Resource")
@TitleHeading("An educational resource")

@PageImage(
purpose: icon,
Expand Down Expand Up @@ -70,7 +70,7 @@ The resources are provided by **Mikhail Rubanov**, Head of Mobile Development at
Reading the book you may notice screenshots of iOS applications with *mark-ups* related to **accessibility design** over them. This is [**VoiceOver Designer**](https://rubanov.dev/voice-over-designer), an [open-source](https://github.com/VODGroup/VoiceOverDesigner) macOS application that allows to design *accessible interfaces* over a screenshot of an app.
@Image(source: "vod-sample", alt: "-")

### Design Resources
### Design resources
Illustrative materials created exclusively for the book can be found [**here**]( https://www.figma.com/file/mBvxYSGy76H3666hve6v46/iOS-Accessibility-Handbook?type=design&node-id=0%3A1&mode=design&t=FsJalTP4YZeRBUoe-1).

@Small {
Expand Down

0 comments on commit e0d7461

Please sign in to comment.