diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/AccessibleGraphics/ColorsAndShapes.tutorial b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/AccessibleGraphics/ColorsAndShapes.tutorial index d56b57d..4255965 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/AccessibleGraphics/ColorsAndShapes.tutorial +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/AccessibleGraphics/ColorsAndShapes.tutorial @@ -1,5 +1,5 @@ @Tutorial(time: 15) { - @Intro(title: "🔒 Accessible Colors And Shapes") { + @Intro(title: "Accessible Colors And Shapes") { это для сотрудников арт лебедев @Image(source: visual-properties, alt: "") https://support.apple.com/en-us/111773 diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/AccessibleGraphics/DynamicType.tutorial b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/AccessibleGraphics/DynamicType.tutorial index feefff1..14ad1c0 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/AccessibleGraphics/DynamicType.tutorial +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/AccessibleGraphics/DynamicType.tutorial @@ -1,5 +1,5 @@ @Tutorial(time: 30) { - @Intro(title: "🔒 Dynamic Type") { + @Intro(title: "Dynamic Type") { 7 РАЗМЕРОВ ШРИФТА ДЛЯ ПЕРЕБИРАНИЯ ХАРЧАМИ, 5 ДЛЯ ТЕХ КОМУ РЕАЛЬНО НАДО diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/AdvancedTechniques.md b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/AdvancedTechniques.md index 031f902..7f84e31 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/AdvancedTechniques.md +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/AdvancedTechniques.md @@ -1,4 +1,4 @@ -# 🥸 Enhancing Accessible Experience +# Enhancing Accessible Experience @Metadata { @PageColor(blue) diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/Controls/Rotor.tutorial b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/Controls/Rotor.tutorial index 03f3f7f..7434a49 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/Controls/Rotor.tutorial +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/Controls/Rotor.tutorial @@ -1,5 +1,5 @@ @Tutorial(time: 30) { - @Intro(title: "🔒 Default Actions With Rotor") { + @Intro(title: "Default Actions With Rotor") { @Image(source: rotor-safari, alt: "") } diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/Input/TextInput.tutorial b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/Input/TextInput.tutorial index a27e576..f3ba69c 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/Input/TextInput.tutorial +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/Input/TextInput.tutorial @@ -1,5 +1,5 @@ @Tutorial(time: 20) { - @Intro(title: "🔒 How Text Input Works") { + @Intro(title: "How Text Input Works") { } diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/Misc/AdaptedPrivacy.tutorial b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/Misc/AdaptedPrivacy.tutorial index 74fdd8f..9641579 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/Misc/AdaptedPrivacy.tutorial +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Advanced/Misc/AdaptedPrivacy.tutorial @@ -1,5 +1,5 @@ @Tutorial(time: 5) { - @Intro(title: "🥸 Protect User's Confidential Information") { + @Intro(title: "Protect User's Confidential Information") { я знаю что здесь делать @Image(source: <#file#>, alt: "<#accessible description#>") diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/BasicTechniques.md b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/BasicTechniques.md index fc38a38..cf2a092 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/BasicTechniques.md +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/BasicTechniques.md @@ -1,6 +1,6 @@ # Create Accessible Interface -Understanding interfaces +A humble UI crash course @Metadata { @PageColor(blue) @@ -19,23 +19,57 @@ Understanding interfaces label: "General Knowledge") } -## What is an interface -Scientifically talking, a **user interface** is the space between a device and its user, and contains everything that makes the communication between the human and the machine possible. +Before doing anything with our apps let's make sure that we know what we're doing. Or at least have a required understanding to not make things worse. So we'll start with breaking down the conception of interfaces and what interface is considered accessible. +## What is a user interface +### Everything in-between a device and its user +Scientifically talking, a **user interface** is the space between a device and its user, and contains everything that makes the communication between the human and the machine possible. -## Elements Any interface **provides and retrieves information**. The former ability is supposed to help the user to control the device, the latter allows this controlling. -Interfaces are built from various elements of different natures. Though all of items provide information to some degree, not all of them are used to control. Therefore elements can be separated into two groups: purely informative elements and interactive elements. +As a consequence, interfaces are built from various elements of different nature. Though all items provide information to some degree, not all of them are used to control. + +Therefore all elements can be separated into two groups: purely **informative** elements and **interactive** elements. + +But it is not sufficient for a collection of elements to be an interface. The items out of which the interface is built have to work together. Work in order to achieve a particular goal. So there must be a cohesion between them. + +### User scenarios +Any application serves a particular **purpose**. Even if the task an application solves is not obvious there is one and it is determined by **what the application enables the user to do**. + +To get a better grip on the **concept**, let's answer the *"What this app is for?"* question for some common **types** of applications. + +| Application | Purpose | +| ----------------- | ----------------------------------------------------- | +| **A store** | To view and order the products available in the store | +| **A drawing app** | To create digital drawings on the device | +| **Settings** | To control the behaviour of the device | +| **A mobile game** | To entertain the user by various means | +| **A messenger** | To connect with other people using the device | + +As you can see the examples are indeed very different. But each of them equally has a purpose. The functionality of an app is built of user scenarios: possible sequences of actions done to achieve a particular task completion. + +## What does accessibility adaption +### Enables everyone to use the application +The one and only goal of accessibility adaption is to enable as many people to use the app. Which means that regardless of what scenarios are available for users without accessibility settings on they must be possible for a completion with help of assistive technology. + +### Provides the equal experience +Additionally it is desired to provide accessible experience in the same manner as the "original" one, for example, just as easy and entertaining, but enabling the core functionality is the prior goal. There are few cases when it is impossible to save the quality of the experience: in cases where sensory translation loses the immersion. But unless there is an unescapable loss one has to consider the user experience to make products truly accessible. + +## How to make accessible interfaces +To think with thoroughness. Not to use overlays, widgets, and not to mindlessly follow step-by-step guides. + +Accessibility is a part of inclusion. It is impossible to empower people without considering where they come from. Lack of empathy only results in misconceptions and no good product can be build on wrong predicaments. So to make sure you have the knowledge that is ready to be implemented read the rest of the book thourghlly and pay attention to the details. Be curious and critical: the smallest detail considered in your app can enable a huge range of people to use it. + +If you are ready to learn let's dive into accessibility. The topics discussed in this part of the book are presented by three categories: + +## Introduction +## Interface's data exposure +## Paving new trails -## Connection -Any application serves a particular purpose. Even if the task an application solves is not obvious there is one and it is determined by what the application allows the user to do. To get a better grip on the concept, let's answer the "What this app is for?" question for some common types of applications. -@Image(source: app-purposes, alt: "") -## Accessibility -## Directions +## Have fun! @Links(visualStyle: detailedGrid) { diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/Between-Screens/Between-ScreensNavigation.tutorial b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/Between-Screens/Between-ScreensNavigation.tutorial index 10c55a7..88ddc4b 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/Between-Screens/Between-ScreensNavigation.tutorial +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/Between-Screens/Between-ScreensNavigation.tutorial @@ -1,5 +1,5 @@ @Tutorial(time: 20) { - @Intro(title: "🔒 Navigation Between Screens") { + @Intro(title: "Navigation Between Screens") { } diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/Containers.tutorial b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/Containers.tutorial index d4ad419..630005c 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/Containers.tutorial +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/Containers.tutorial @@ -1,5 +1,5 @@ @Tutorial(time: 10) { - @Intro(title: "🔒 Containers") { + @Intro(title: "Containers") { Only he knows what is supposed to be here. } diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/ControlHierarchy.tutorial b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/ControlHierarchy.tutorial index 52fb2e8..18e9db1 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/ControlHierarchy.tutorial +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/ControlHierarchy.tutorial @@ -1,5 +1,5 @@ @Tutorial(time: 20) { - @Intro(title: "🔒 I Do Not Know") { + @Intro(title: "I Do Not Know") { } diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/FocusOrder.tutorial b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/FocusOrder.tutorial index 943f831..1a315e8 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/FocusOrder.tutorial +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/FocusOrder.tutorial @@ -1,5 +1,5 @@ @Tutorial(time: 20) { - @Intro(title: "🔒 Focus Order") { + @Intro(title: "Focus Order") { } diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/OnScreen-Navigation.tutorial b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/OnScreen-Navigation.tutorial index 1feb6b7..e56d1c2 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/OnScreen-Navigation.tutorial +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Connect/Navigation/On-Screen/OnScreen-Navigation.tutorial @@ -1,5 +1,5 @@ @Tutorial(time: 15) { - @Intro(title: "🔒 Navigation Within A Screen") { + @Intro(title: "Navigation Within A Screen") { } diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Describe/AccessibilityAttributes/Frame/Frame.tutorial b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Describe/AccessibilityAttributes/Frame/Frame.tutorial index a6db784..c4cfd93 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Describe/AccessibilityAttributes/Frame/Frame.tutorial +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Describe/AccessibilityAttributes/Frame/Frame.tutorial @@ -1,5 +1,5 @@ -@Tutorial(time: <#number#>) { - @Intro(title: "<#text#>") { +@Tutorial(time: 10) { + @Intro(title: "Frame") { <#text#> @Image(source: <#file#>, alt: "<#accessible description#>") diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Describe/AccessibilityAttributes/Traits/Traits.tutorial b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Describe/AccessibilityAttributes/Traits/Traits.tutorial index f65c70e..f499157 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Describe/AccessibilityAttributes/Traits/Traits.tutorial +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Describe/AccessibilityAttributes/Traits/Traits.tutorial @@ -500,23 +500,40 @@ } @Section(title: "Hidden Traits") { + @ContentAndMedia { - It is known that there are UIAccessibilityTraits not mentioned in UIKit documentation, but they are present in the code. - @Image(source: placeholder-image, alt: "") + It is known that there are `UIAccessibilityTraits` not mentioned in `UIKit`'s documentation, but they are present in the code. } - @Steps { - @Step { - jep - - @Image(source: placeholder-image, alt: "") + @Stack { + @ContentAndMedia { + | Bytes | Description | + | ----- | --------------------------------------------------------------------------- | + | 19 | `Pickeritem` | + | 20 | `Radio button` | + | 23 | `Status bar item` | + | 25 | `Inactive` | + | 26 | `Footer` | + | 28 | `Tab` | + | 35 | `Tap and hold, then move up and down to select index` | + | 38 | `Draggable. Double tap and hold, wait for the sounds, then drag to re-arrange` | } - - @Step { - jep - - @Image(source: placeholder-image, alt: "") + + + @ContentAndMedia { + | Bytes | Description | + | ----- | ------------------------------ | + | 32 | `Visited` | + | 39 | No description | + | 40 | `Pop-up button` | + | 42 | `Maths` | + | 45 | No description | + | 50 | `Folder` | + | 52 | `Menu item` | + | 53 | `Double tap to toggle settings`| + | 59 | `Video playback` | + | 60 | `Icon` | } } } diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Simplify/HideUselessControls.tutorial b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Simplify/HideUselessControls.tutorial index f484c62..a6cd98b 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Simplify/HideUselessControls.tutorial +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Adaption/Basic/Simplify/HideUselessControls.tutorial @@ -1,5 +1,5 @@ @Tutorial(time: 10) { - @Intro(title: "🔒 Hide Useless controls") { + @Intro(title: "Hide Useless controls") { Only he knows what is supposed to be here. } diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Introduction/AccessibilityFeatures/AssistiveTouch/AssistiveTouch.md b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Introduction/AccessibilityFeatures/AssistiveTouch/AssistiveTouch.md index 2200b33..957b42e 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Introduction/AccessibilityFeatures/AssistiveTouch/AssistiveTouch.md +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Introduction/AccessibilityFeatures/AssistiveTouch/AssistiveTouch.md @@ -1,4 +1,4 @@ -# 🔒 AssistiveTouch +# AssistiveTouch @Metadata { @PageColor(blue) diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Introduction/AccessibilityFeatures/GuidedAccess/aGuidedAccess.md b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Introduction/AccessibilityFeatures/GuidedAccess/aGuidedAccess.md index badf398..1ecc0bf 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Introduction/AccessibilityFeatures/GuidedAccess/aGuidedAccess.md +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Introduction/AccessibilityFeatures/GuidedAccess/aGuidedAccess.md @@ -1,4 +1,4 @@ -# 🔒 Guided Access +# Guided Access @Metadata { @PageColor(blue) diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Introduction/UIFrameworks.md b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Introduction/UIFrameworks.md index e8dc34b..070316e 100644 --- a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Introduction/UIFrameworks.md +++ b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Pages/Introduction/UIFrameworks.md @@ -1,4 +1,4 @@ -# 🔒 Accessibility in UIKit and SwiftUI +# Accessibility in UIKit and SwiftUI @Metadata { @PageColor(blue) diff --git a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Resources/Keynote/tables.key b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Resources/Keynote/tables.key index 715e527..182d4ec 100755 Binary files a/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Resources/Keynote/tables.key and b/Sources/iOSAccessibilityHandbook/iOSAccessibilityHandbook.docc/Resources/Keynote/tables.key differ