Skip to content

Commit

Permalink
af + stre
Browse files Browse the repository at this point in the history
  • Loading branch information
crescentheaded committed Mar 11, 2024
1 parent 9e27c47 commit be69548
Show file tree
Hide file tree
Showing 8 changed files with 157 additions and 44 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 🔒 🥸 Accessibility Adaption
# 🔒 Accessibility of Mobile Applications

An introduction to working with Accessibility API

Expand All @@ -19,37 +19,111 @@ An introduction to working with Accessibility API
label: "General Knowledge")
}

## Why make accessible experience
Usage statistics, social surveys and other market analyses definitely show that there are people in need of assistive technology support. Despite the fact, accessibility as a field is still new.
## First things first: why support accessibility

The answer for this question is different for every accessibility professional. There are many reasons why a product should have an accessibility adaption, but there is no requirement for any application to be approachable. Unless if your company is working for a particular government that obliges you to conform to a particular law.
Perceive it as a *disclaimer* of some kind.
@Image(source: "placeholder", alt: "")

Otherwise accessibility is voluntary: only you decide why you may want to enable more people to use your product.
### The clientele exists and is visible
To not rely on **common sense** solely, usage *statistics*, social *surveys* and other *market analyses* definitely show that **there are people in need of assistive technology support**.
@Image(source: "fifty-percent", alt: "")

iOS Accessibility Handbook project has no goal to propagate any values. If you are here it means that you have a reason to make a right thing ;)
### Accessibility is not yet widely considered
Despite the fact, it is still *globally uncommon* to have accessibility **considered**. The professional field is in shortage of *competent* specialists; organisations lack the **realisation** of how important it is to provide **equal access** to their products.
@Image(source: "placeholder", alt: "")

Moreover, accessibility is essentially an engine of **people with disabilities inclusion**. Therefore there are common misconceptions and discrimination. Having a disability is still **stigmatised** - the less *open-minded* society is the heavier it is.
@Image(source: "placeholder", alt: "")


### Accessible development is perceived differenly
So the answer to "Why support accessibility?" question is different for every person working *around* accessibility. Some people believe that [**accessible design**](<doc:AccessibleDesign>) is an *immanent* part of **universal design**. Other chase the **auditory expansion**. A few countries oblige organisation to make accessible products by **civil rights** law and their developers are dodging the lawsuits.
@Image(source: "placeholder", alt: "")

The more the production is influenced by *external* pressure the less accessible the result will be. Conforming to **extrinsic standards** has *nothing* in common with providing accessible experience: only **empathy** empowers people to consider others. It is impossible to support accessibility properly without a *clear* realisation of the situation and *genuine* motivation to change it.
@Image(source: "placeholder", alt: "")

### Choice is individual
Therefore only the person themself decides *why* they want to enable more people to use the product whose development is under their influence.

### Accessibility is a privilege
It is a difficult journey for anyone regardless of their specialty and position, and [**iOS Accessibility Handbook**](https://vodgroup.github.io/AccessibilityDocumentation/documentation/iosaccessibilityhandbook) project has no goal to *propagate* any values. We just support accessibility **the way it should be done** and share the experience.
@Image(source: "placeholder", alt: "")

**So if you are here it means that you *too* have a reason to do the right thing.**

## Accessibility API

### Accessibility is one of Apple's core values

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

Thanks to Apple's decision to protect diversity and invest to accessibility, it is not a unworkable ordeal to create accessible software for iOS.

Talking about iOS the system supports an impressive range of assistive technology and provides highly comprehensible documentation, including WWDC sessions, API reference and promotional materials.
@Image(source: "placeholder", alt: "")

Talking about iOS the system supports an impressive [**range of assistive technology**](<doc:AccessibilityFeatures>) and provides highly comprehensible **documentation**, including [**WWDC sessions**](https://developer.apple.com/wwdc23/topics/accessibility-inclusion/), [**API reference**](https://developer.apple.com/accessibility/) and [**promotional materials**](https://www.apple.com/accessibility/).

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


The job ahead itself may be narrowed to **understanding the accessible functional** and knowing how to make it work within an application. To start with, as a part of **code**.

### Program adaption

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

Constructing an interface out of **default elements** majorly covers the functionality of [**Accessible Features**](<doc:AccessibilityFeatures>), though the **experience** of automatically generated interface will not be as... *delightful* as the one touched by a human. **There is no real accessibility if not intended**.

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

Having **custom elements** designed *specifically* for your interface requires a little bit more work done on supporting [**Accessible Features**](<doc:AccessibilityFeatures>) but it's definitely not exhausting, too.

### UIKit and SwiftUI
Both of two possible user interface frameworks, UIKit and SwiftUI equally provide accessible underlayment for applications built with their use.

Constructing an interface out of default elements majorly covers the functionality of Accessible Features, though the experience of automatically generated interface will not be as delightful as the one touched by a human.
@Image(source: "placeholder", alt: "")

Both of two possible user interface frameworks, [**UIKit**](https://developer.apple.com/documentation/uikit) and [**SwiftUI**](https://developer.apple.com/xcode/swiftui/) *equally* provide accessible underlayment for applications built with their use.

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

In the book we are going to study [**iOS Accessibility**](<doc:iOSAccessibility>) by conceptions presents in *any* other interface, so it is not that important to focus on a particular framework. Nevertheless **both UIKit and SwiftUI implementations are provided for *every* code sample** if possible.

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

### Accessible Design

Having custom elements designed specifically for your interface requires a little bit more work done on supporting Accessibility Features but isn't exhausting too.
@Image(source: "placeholder", alt: "")

In the book we are going to study iOS Accessibility by conceptions presents in any other interface, so it is not that important to focus on a particular framework. Nevertheless both UIKit and SwiftUI implementation are provided for every code sample.
Once the foundation is set there is [**design**](<doc:AccessibleDesign>). *No* accessibility implemented for an application will last (or do good at all) without proper **changes in the organisational work**. So if you are already **familiar** with the concepts behind assistive technology and its support, hover over to the [**Enterprise**](<doc:Processes>) volume of the book and see how to implement your knowledge on a bigger scale.

@Links(visualStyle: compactGrid) {
- <doc:AccessibleDesign>
- <doc:AccessibilityQualityAssurance>
- <doc:Maintenance>
- <doc:AccessibilityActivism>
}

## Adaption Strategy

Ok, enough talking. We are ready to get some work done.
Ok, enough talking. We are ready to get some **work** done.

### iOS Accessibility Handbook
The book's guidelines are structured *that* way so there is some **entry-level tasks to enable equal access** and vast resources on **polishing accessible experience**.

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

The book's guidelines are structured that way so there is some entry-level tasks to do and vast resources on polishing accessible experience.
### Course plan
To see the *whole* curriculum visit the [**Table of Contents**](<doc:AdaptionStrategy>).

@Image(source: fifteen-percent, alt: "")
@Image(source: roadmap, alt: "")

### Tutorials
To start right with **practicing** something new, go to [**Based**](<doc:BasicTechniques>) or [**Advanced**](<doc:AdvancedTechniques>) level overview according to what you want to learn.

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

## Have fun!
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
https://developer.apple.com/wwdc20/10022
Intro
Task
https://www.apple.com/newsroom/2024/03/apple-introduces-transcripts-for-apple-podcasts/
AVSpeechSynthesizer
Cases
Wrap-up
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Alternative Communication

@Comment {
https://www.apple.com/newsroom/2023/05/assistiveware-ushers-in-next-generation-of-aac-technology/
}

@Metadata {
@PageColor(blue)
@TitleHeading("Language Sucks")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# 🥸 Accessibility Features
# Accessibility Features

A brief overview of Accessibility Features available on iOS

@Metadata {
@PageColor(blue)
Expand All @@ -17,23 +19,43 @@
label: "General Knowledge")
}

Introduction
## Accessibility Features Explained

@Image(source: settings-features, alt: "")
@Image(source: features-list, alt: "")

As any other Apple's operational system iOS supports a great variety of assistive technology **right out of the box**.

@Links(visualStyle: compactGrid) {
- <doc:iOSAccessibility>
- <doc:UIFrameworks>
}

### Introduction to Accessible Interfaces

To get familiar with the *concepts* exploited by assistive technology hover to the explanatory article of [**how interfaces support Accessibility Features**](<doc:BasicTechniques>).

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

### List of Essential Software

To have a closer look at the features available proceed to the series of descriptive articles below.

@Links(visualStyle: detailedGrid) {
- <doc:VoiceOver>
- <doc:VoiceControl>
- <doc:SwitchControl>
- <doc:DynamicType>
- <doc:FullKeyboardAccess>
- <doc:GuidedAccess>
- <doc:AssistiveAccess>
- <doc:AssistiveTouch>
- <doc:AAC>
}

## Accessibility Users
Overview
### Not only permanent disabilities
## Supporting Accessibility Features

## Disabilities
Overview
### Vision
### Hearing
### Motor
### Cognitive
To make non-native application work as flawlessly see the [**Table of Contents**](https://vodgroup.github.io/AccessibilityDocumentation/tutorials/adaptionstrategy) for working with Accessibility API documentation.

## Grid
@Image(source: roadmap, alt: "")

## To roadmap
## Have fun!
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# iOS Accessibility

An introduction to Accessibility on iOS

@Metadata {
@PageColor(blue)
@TitleHeading("Technology for Everyone")
Expand All @@ -17,21 +19,17 @@
label: "General Knowledge")
}


An introduction to Accessibility on iOS


## What does it mean for something to be accessible?
Accessibility is a *property* of products (e.g. devices, services, concepts, environments) that measures **approachability** — the widest possible range of people who can use it.

Everyone has their own *preferences* and *capabilities*, therefore it is required to consider the *diversity* of products' audience if there is a wish to extend the **reach**.
@Image(source: fifty-percent, alt: "")

There are many reasons why one would want to *include* more people — from straightforward sales increase to moral beliefs, but regardlessly of the case the strategy is the same: *to provide equal access to the same experience*.
There are many reasons why one would want to *include* more people — from straightforward sales increase to moral beliefs, but regardlessly of the case the work is the same: *to provide equal access to the same experience*.
@Image(source: fifteen-percent, alt: "")

## Computer Accessibility
Computer accessibility, often referred to as a11y, includes a wide range of solutions that are aimed to enhance approachability of computers. It may done by using assistive technology, which is specialised software or hardware, or a combination of both.
## Digital Accessibility
Digital accessibility, often referred to as a11y, includes a wide range of solutions that are aimed to enhance approachability of digital technology. It may done by using assistive technology, which is specialised software or hardware, or a combination of both.
@Image(source: a11y, alt: "")

## iOS Accessibility
Expand All @@ -44,7 +42,7 @@ In this book we are going to discuss how to make iOS applications accessible. Du
@Image(source: 36-seconds, alt: "")

### Current State
From June 8, 2009 Apple hasn't stopped for a second to promote accessible design. [**Inclusivity**](https://www.apple.com/diversity/) is one of the core values the company has been always exposing and [**accessibility**](https://www.apple.com/accessibility/) is an immanent part of it. Aiming to make a product as universal so everyone can use it led Apple to unmeasurable promotion of assistive technology support.
From June 8, 2009 Apple hasn't stopped for a second to promote accessible design. [**Inclusivity**](https://www.apple.com/diversity/) is one of the core values the company has been always exposing and [**accessibility**](https://www.apple.com/accessibility/) is an immanent part of it. Aiming to make a product as universal so everyone can use it led Apple to unmeasurable efforts put to assistive technology support.
@Image(source: inclusion, alt: "")

### Available Features
Expand All @@ -54,9 +52,23 @@ As for today here is the list of all [**Accessible Features**](<doc:Accessibilit
To see how these technologies personalise the user experience go to the settings and play around. Please consider that turning on some features like [**Switch Control**](<doc:SwitchControl>) may be tricky to turn off, so make sure you are aware of what is going to happen when you toggle the settings.
@Image(source: settings-features, alt: "")

To know more about specific features, their concept and implementation visit the guides in [**Accessibility Feature**](<doc:AccessibilityFeatures>) series.

### Community Trends
Finally, we came to the point where stating the purpose of this book is possible. iOS Accessibility Handbook is a collection of guidelines of how to develop software for iOS which supports [**Accessible Features**](<doc:AccessibilityFeatures>) and promotes [**accessible design**](<doc:AccessibleDesign>).
Finally, we came to the point where stating the purpose of this book is possible. [**iOS Accessibility Handbook**](https://vodgroup.github.io/AccessibilityDocumentation/documentation/iosaccessibilityhandbook) is a collection of guidelines of how to develop software for iOS which supports [**Accessible Features**](<doc:AccessibilityFeatures>) and promotes [**accessible design**](<doc:AccessibleDesign>).
@Image(source: human-interface-guidelines, alt: "")

To dive into the process of developing accessible application open the Table of Contents, which covers the topics discussed in the book. If you want to learn about Accessibility or assistive technology, visit other articles from General Knowledge category.
To dive into the process of developing accessible application open the [**Table of Contents**](https://vodgroup.github.io/AccessibilityDocumentation/tutorials/adaptionstrategy), which covers the practical side of the book.
@Image(source: roadmap, alt: "")

If you want to learn about accessibility or assistive technology first, take a look at articles from **General Knowledge** category.
@Links(visualStyle: detailedGrid) {
- <doc:SensorySystem>
- <doc:MotorDisabilities>
- <doc:AccessibilityFeatures>
- <doc:AccessibilityAdaption>
- <doc:BasicTechniques>
- <doc:AdvancedTechniques>
}

## Have fun!
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ``iOSAccessibilityHandbook``

Make your iOS application accessible for everyone with help of interactive guides.
Make your iOS application accessible for everyone

@Metadata {
@DisplayName("iOS Accessibility Handbook")
Expand All @@ -20,15 +20,15 @@ iOS Accessibility Handbook is an open-source **educational project** about makin
@Image(source: features-2, alt: "")

### Interactive Learning
This handbook provides *extended documentation* of [**Accessibility Features**](<doc:AccessibilityFeatures>), including:
This handbook provides *extended documentation* of [**Accessibility Features**](<doc:AccessibilityFeatures>) API, including:
- verbose *articles* on the topic;
- interactive *guides* to follow step-by-step;
- various media, such as *video tutorials*.

In other words, materials here cover **everything one could ever need to know about accessibility on iOS**.

### Target Audience
The project is dedicated to help *developers*, *designers*, *researchers* and so on — in other words, to *everyone working with accessibility* on iOS. There is **no commercial underlayment** and the only reason the project exists is to popularise the topic and to *share* relevant real-life experience of contributing *accessibility experts*.
The project is dedicated to help *developers*, *designers*, *researchers* and so on — in other words, to *everyone working with accessibility* on iOS. There is **no commercial underlayment** and the only reason the project exists is to popularise the topic and to *share* relevant real-life experience of contributing *accessibility professionals*.

### Featured
@Links(visualStyle: detailedGrid) {
Expand All @@ -38,9 +38,9 @@ The project is dedicated to help *developers*, *designers*, *researchers* and so

## — How does it work?

The handbook is somewhat of a *complete course* of **how to make iOS applications accessible** regardless of the stage of its development. The material is split into conceptual *topics* and categorised by its relation to particular assistive technologies and levels of *importance*.
The handbook is somewhat of a *complete course* of **how to make iOS applications accessible** regardless of the stage of its development. The material is split into conceptual *topics* and categorised by its relation to particular assistive technologies and field of implementation.

To know more about the book's structure scroll down to the bottom of the page where table of contents is.
To know more about the book's structure scroll down to the bottom of the page where the [**table of contents**](https://vodgroup.github.io/AccessibilityDocumentation/documentation/iosaccessibilityhandbook/#topics) is.

### Technical Implementation
At the moment the project's form is defined by being a *documentation catalog* ([**DocC**](https://www.swift.org/documentation/docc)) hosted by [**GitHub pages**](https://pages.github.com).
Expand All @@ -52,7 +52,7 @@ The resources are provided by **Mikhail Rubanov**, Head of Mobile Development at
@Image(source: "aboutAccessibility-sample", alt: "-")

### VoiceOver Designer
Reading the book you may sometimes 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 *accessibility scenarios* over a screenshot of an app.
Reading the book one may sometimes 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 *accessibility scenarios* over a screenshot of an app.
@Image(source: "vod-sample", alt: "-")


Expand Down
Binary file not shown.

0 comments on commit be69548

Please sign in to comment.