motion-accessibility 2.0 → 2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +17 -0
- data/lib/project/constants.rb +19 -1
- data/lib/project/inspector.rb +8 -3
- data/lib/project/object.rb +1 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8191afe48954322a4032c1578c7ab842648de5e3
|
4
|
+
data.tar.gz: c00d8d340dedd93993e9043f31fd5417eb7fbbd1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4fc7b9f31787c4b43680c9bc7427928cf6ce9330e3ab27c4a59787fb56a18b2980ddb76d09305209cec64f647d9dba830b3b7d24409bde206fbbea106d41161
|
7
|
+
data.tar.gz: 98058f0d3e877cf4c9834f12030486fc88791747c6a80960ed5ab690b99db06ef82cd778c7528e3768d34ba18d4002aec6ac7431d1f7cf238445edd17551f55c
|
data/README.md
CHANGED
@@ -116,6 +116,7 @@ Accessibility value: nil
|
|
116
116
|
Accessibility language: nil
|
117
117
|
Accessibility frame: x=0.0 y=0.0 width=100.0 height=100.0
|
118
118
|
Accessibility activation point: x=0.0 y=0.0
|
119
|
+
Accessibility path: nil
|
119
120
|
Accessibility view is modal: false
|
120
121
|
Should group accessibility children: false
|
121
122
|
Accessibility elements hidden: false
|
@@ -238,6 +239,10 @@ The frame of the accessibility element. This defaults to the frame of the view.
|
|
238
239
|
|
239
240
|
The point activated when a VoiceOver user activates the view by double tapping it. This defaults to the center of the view. In other words, a VoiceOver can double-tap anywhere on the screen, but it will simulate a sighted user touching the center of the view.
|
240
241
|
|
242
|
+
#### `accessibility_path`
|
243
|
+
|
244
|
+
If nil, the default, VoiceOver uses the `accessibility_frame` to highlight the element. If set, it will use the path. This method accepts a `UIBezierPath`.
|
245
|
+
|
241
246
|
#### `accessibility_modal_view?` or `accessibility_view_is_modal`
|
242
247
|
|
243
248
|
Ignores elements within views which are siblings of the receiver. If you present a modal view and want VoiceOver to ignore other views on the screen, set this to true.
|
@@ -270,6 +275,10 @@ Accepts an integer and returns the accessibility hint for the component.
|
|
270
275
|
|
271
276
|
These methods trigger when the VoiceOver user performs specific actions. You can implement then in a UIView or an accessibility element.
|
272
277
|
|
278
|
+
#### `accessibility_activate`
|
279
|
+
|
280
|
+
New in iOS 7, this method performs a custom action when a VoiceOver double-taps the view. You can use this if the view uses a custom gesture, for example. It returns true or false depending on the success of the action.
|
281
|
+
|
273
282
|
#### `accessibility_perform_escape`
|
274
283
|
|
275
284
|
VoiceOver has a special two-finger scrub gesture designed to act as a back button. The standard back button of a UINavigationController implements this method. It dismisses a modal view, and returns the success or failure of the action. For example, you could use this to dismiss a popover.
|
@@ -430,6 +439,14 @@ Additionally, these two methods relate to the Zoom screen magnification software
|
|
430
439
|
This notifies Zoom that an app's focus has changed. It takes a zoom type described above, a frame, and the view containing the frame.
|
431
440
|
#### `Accessibility.register_gesture_conflicts_with_zoom`
|
432
441
|
This issues a dialog to the user when a three-fingered gesture conflicts with Zoom. It lets them choose to disable Zoom or continue.
|
442
|
+
|
443
|
+
### Speech Attributes
|
444
|
+
|
445
|
+
iOS 7 adds some speech attributes to use in attributed strings. To get them, just call the `speech_attribute` method on the following symbols.
|
446
|
+
- `:punctuation`
|
447
|
+
- `:language`
|
448
|
+
- `:pitch`
|
449
|
+
|
433
450
|
## contributing
|
434
451
|
|
435
452
|
|
data/lib/project/constants.rb
CHANGED
@@ -17,6 +17,8 @@ Attributes = {
|
|
17
17
|
:accessibility_frame= => :setAccessibilityFrame,
|
18
18
|
:accessibility_activation_point => :accessibilityActivationPoint,
|
19
19
|
:accessibility_activation_point= => :setAccessibilityActivationPoint,
|
20
|
+
:accessibility_path => :accessibilityPath,
|
21
|
+
:accessibility_path= => :setAccessibilityPath,
|
20
22
|
:accessibility_view_is_modal => :accessibilityViewIsModal,
|
21
23
|
:accessibility_view_is_modal= => :setAccessibilityViewIsModal,
|
22
24
|
:accessibility_modal_view? => :accessibilityViewIsModal,
|
@@ -78,6 +80,16 @@ causes_page_turn: UIAccessibilityTraitCausesPageTurn,
|
|
78
80
|
not_enabled: UIAccessibilityTraitNotEnabled
|
79
81
|
}
|
80
82
|
|
83
|
+
if UIDevice.currentDevice.systemVersion.to_f>=7.0
|
84
|
+
Speech_Attributes = {
|
85
|
+
:punctuation => UIAccessibilitySpeechAttributePunctuation,
|
86
|
+
:language => UIAccessibilitySpeechAttributeLanguage,
|
87
|
+
:pitch => UIAccessibilitySpeechAttributePitch
|
88
|
+
}
|
89
|
+
else
|
90
|
+
Speech_Attributes={}
|
91
|
+
end
|
92
|
+
|
81
93
|
PickerView_Attributes = {
|
82
94
|
:accessibility_label_for_component => :accessibilityLabelForComponent,
|
83
95
|
:accessibility_abel_for_component= => :setAccessibilityLabelForComponent,
|
@@ -103,7 +115,8 @@ Actions = {
|
|
103
115
|
:accessibility_increment => :accessibilityIncrement,
|
104
116
|
:accessibility_perform_escape => :accessibilityPerformEscape,
|
105
117
|
:accessibility_perform_magic_tap => :accessibilityPerformMagicTap,
|
106
|
-
:accessibility_scroll => :accessibilityScroll
|
118
|
+
:accessibility_scroll => :accessibilityScroll,
|
119
|
+
:accessibility_activate => :accessibilityActivate
|
107
120
|
}
|
108
121
|
|
109
122
|
All_Attributes=Attributes.merge(Container_Attributes).merge(Reading_Content).merge(Actions)
|
@@ -155,6 +168,7 @@ Attribute_Types = {
|
|
155
168
|
:accessibilityLanguage=>:string,
|
156
169
|
:accessibilityFrame=>:cgrect,
|
157
170
|
:accessibilityActivationPoint=>:cgpoint,
|
171
|
+
:accessibilityPath => :uibezierpath,
|
158
172
|
:accessibilityViewIsModal=>:boolean,
|
159
173
|
:shouldGroupAccessibilityChildren=>:boolean,
|
160
174
|
:accessibilityElementsHidden=>:boolean,
|
@@ -236,6 +250,10 @@ def accessibility_zoom_type
|
|
236
250
|
Accessibility::Zoom[self]||(raise("Unknown zoom type #{self}"))
|
237
251
|
end
|
238
252
|
|
253
|
+
def speech_attribute
|
254
|
+
Accessibility::Speech_Attributes[self]||(raise "Unknown speech attribute #{self}")
|
255
|
+
end
|
256
|
+
|
239
257
|
end
|
240
258
|
|
241
259
|
A11y=Accessibility unless defined?(A11y)
|
data/lib/project/inspector.rb
CHANGED
@@ -27,14 +27,19 @@ begin
|
|
27
27
|
case attribute
|
28
28
|
when :accessibilityTraits then value=inspect_accessibility_traits
|
29
29
|
else
|
30
|
-
value=self.send(attribute)
|
30
|
+
value=self.send(attribute)
|
31
31
|
end
|
32
|
+
if value
|
32
33
|
case Accessibility.attribute_type(attribute)
|
33
34
|
when :boolean
|
34
35
|
value=true if value==1
|
35
36
|
value=false if value==0||value.nil?
|
36
|
-
when :cgrect then value="x=#{
|
37
|
-
when :cgpoint then value="x=#{
|
37
|
+
when :cgrect then value="x=#{value.origin.x.round(1)} y=#{value.origin.y.round(1)} width=#{value.size.width.round(1)} height=#{value.size.height.round(1)}"
|
38
|
+
when :cgpoint then value="x=#{value.x.round(1)} y=#{value.y.round(1)}"
|
39
|
+
when :uibezierpath then value="x=#{value.bounds.origin.x.round(1)} y=#{value.bounds.origin.y.round(1)} width=#{value.bounds.size.width.round(1)} height=#{value.bounds.size.height.round(1)}"
|
40
|
+
end
|
41
|
+
else
|
42
|
+
value="nil"
|
38
43
|
end
|
39
44
|
rescue
|
40
45
|
value="Error: #{$!}"
|
data/lib/project/object.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: motion-accessibility
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '2.
|
4
|
+
version: '2.1'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Austin Seraphin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09
|
11
|
+
date: 2013-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -64,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
64
64
|
version: '0'
|
65
65
|
requirements: []
|
66
66
|
rubyforge_project:
|
67
|
-
rubygems_version: 2.0.
|
67
|
+
rubygems_version: 2.0.3
|
68
68
|
signing_key:
|
69
69
|
specification_version: 4
|
70
70
|
summary: This gem provides easy ruby-like wrappers around the protocols which interact
|