@@ -5,6 +5,9 @@ import styles from './BrowserView.module.scss';
5
5
6
6
import { GlobalContext } from '../../context/reducers/globalReducer' ;
7
7
import { setProjectUrl } from '../../context/actions/globalActions' ;
8
+ import { InvertColors } from '@material-ui/icons' ;
9
+
10
+ import { ScreenReader } from '@capacitor/screen-reader' ;
8
11
9
12
const BrowserView = ( ) => {
10
13
const [ { url } , dispatchToGlobal ] = useContext ( GlobalContext ) ;
@@ -15,15 +18,23 @@ const BrowserView = () => {
15
18
muted : false ,
16
19
checkedGrayscale : false ,
17
20
checkedContrast : false ,
21
+ checkedReader : false ,
22
+ checkedLowVision : false ,
23
+ checkedBrightness : false ,
18
24
} ) ;
19
25
20
26
// Mute/Unmute webview
21
27
const muteAudio = ( muted ) => {
22
28
const webview = document . querySelector ( 'webview' ) ;
23
- // console.log(webview);
29
+ console . log ( webview ) ;
24
30
webview . setAudioMuted ( muted ) ;
25
31
} ;
26
32
33
+ const activateReader = ( ) => {
34
+ // Ternary statement is backwards, as checkedBoxes.checkedReader updates after the case break
35
+ checkedBoxes . checkedReader ? ScreenReader . speak ( { value : 'Screen Reader is off' } ) : ScreenReader . speak ( { value : 'Screen Reader is on' } ) ;
36
+ }
37
+
27
38
// helper function to add the https or http
28
39
const addHttps = ( url ) => {
29
40
if ( url . indexOf ( 'http://' ) === 0 || url . indexOf ( 'https://' ) === 0 ) {
@@ -78,8 +89,34 @@ const BrowserView = () => {
78
89
...checkedBoxes ,
79
90
checkedContrast : ! checkedBoxes . checkedContrast ,
80
91
} ) ;
92
+ console . log ( 'after everything: ' + checkedBoxes . checkedReader ) ;
81
93
break ;
82
94
95
+ // Updates screen reader
96
+ case 'checkedReader' :
97
+ console . log ( 'before setCheckBox: ' + checkedBoxes . checkedReader ) ;
98
+ setCheckBox ( {
99
+ ...checkedBoxes ,
100
+ checkedReader : ! checkedBoxes . checkedReader ,
101
+ } ) ;
102
+ console . log ( 'after setCheckBox: ' + checkedBoxes . checkedReader ) ;
103
+
104
+ activateReader ( checkedBoxes . checkedReader ) ;
105
+ break ;
106
+ // a filter for low Vision, easier on eyes
107
+ case 'checkedLowVision' :
108
+ setCheckBox ( {
109
+ ...checkedBoxes ,
110
+ checkedLowVision : ! checkedBoxes . checkedLowVision ,
111
+ } ) ;
112
+ break ;
113
+ //brightness test to emulate vision with light sensitivity
114
+ case 'checkedBrightness' :
115
+ setCheckBox ( {
116
+ ...checkedBoxes ,
117
+ checkedBrightness : ! checkedBoxes . checkedBrightness ,
118
+ } ) ;
119
+ break ;
83
120
default :
84
121
break ;
85
122
}
@@ -96,10 +133,10 @@ const BrowserView = () => {
96
133
id = { styles . accessLensCheckBoxes }
97
134
>
98
135
< FormControlLabel
99
- // style={{fontSize:2}}
100
- id = "Disable Mouse Checkbox"
101
- control = { (
102
- < Checkbox
136
+ // style={{fontSize:2}}
137
+ id = "Disable Mouse Checkbox"
138
+ control = { (
139
+ < Checkbox
103
140
value = "disable mouse clicks"
104
141
checked = { checkedBoxes . checkedMouse }
105
142
onChange = { handleChangeCheckBox }
@@ -148,6 +185,45 @@ const BrowserView = () => {
148
185
) }
149
186
label = "Mute"
150
187
/>
188
+ < FormControlLabel
189
+ id = "Turn on Screen Reader"
190
+ control = { (
191
+ < Checkbox
192
+ value = "checkedReader"
193
+ checked = { checkedBoxes . checkedReader }
194
+ onChange = { handleChangeCheckBox }
195
+ name = "checkedReader"
196
+ size = 'small'
197
+ />
198
+ ) }
199
+ label = "Screen Reader"
200
+ />
201
+ < FormControlLabel
202
+ id = "Low Vision Checkbox"
203
+ control = { (
204
+ < Checkbox
205
+ value = "filter"
206
+ checked = { checkedBoxes . checkedLowVision }
207
+ onChange = { handleChangeCheckBox }
208
+ name = "checkedLowVision"
209
+ size = 'small'
210
+ />
211
+ ) }
212
+ label = "Low Vision "
213
+ />
214
+ < FormControlLabel
215
+ id = "Brightness Checkbox"
216
+ control = { (
217
+ < Checkbox
218
+ value = "filter"
219
+ checked = { checkedBoxes . checkedBrightness }
220
+ onChange = { handleChangeCheckBox }
221
+ name = "checkedBrightness"
222
+ size = 'small'
223
+ />
224
+ ) }
225
+ label = "Light Sensitivity"
226
+ />
151
227
</ div >
152
228
</ div >
153
229
{ /* Search bar */ }
@@ -161,8 +237,10 @@ const BrowserView = () => {
161
237
id = { styles . browserView }
162
238
src = { url }
163
239
style = { {
164
- filter : checkedBoxes . checkedGrayscale && checkedBoxes . checkedContrast ? 'grayscale(100%) contrast(0.2)'
165
- : checkedBoxes . checkedGrayscale ? 'grayscale(100%)' : checkedBoxes . checkedContrast ?'contrast(0.2)' : null ,
240
+ // filter: checkedBoxes.checkedGrayscale ? 'grayscale(100%)' : 'grayscale(0%)',
241
+ filter : checkedBoxes . checkedGrayscale && checkedBoxes . checkedContrast && checkedBoxes . checkedLowVision && checkedBoxes . checkedBrightness ? 'grayscale(100%) contrast(0.2) invert(100%) brightness(150%)'
242
+ : checkedBoxes . checkedGrayscale && checkedBoxes . checkedContrast ? 'grayscale(100%) contrast(0.2)'
243
+ : checkedBoxes . checkedGrayscale ? 'grayscale(100%)' : checkedBoxes . checkedContrast ? 'contrast(0.2)' : checkedBoxes . checkedLowVision ? 'invert(100%)' : checkedBoxes . checkedBrightness ? 'brightness(150%)' : null ,
166
244
pointerEvents : checkedBoxes . checkedMouse ? 'none' : 'auto' ,
167
245
} }
168
246
/>
0 commit comments