summaryrefslogtreecommitdiff
path: root/StoneIsland/www/js/lib/etc
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/www/js/lib/etc')
-rw-r--r--StoneIsland/www/js/lib/etc/accessibility.js64
-rw-r--r--StoneIsland/www/js/lib/etc/scroll.js29
2 files changed, 87 insertions, 6 deletions
diff --git a/StoneIsland/www/js/lib/etc/accessibility.js b/StoneIsland/www/js/lib/etc/accessibility.js
index 614c3796..c1f5ce5d 100644
--- a/StoneIsland/www/js/lib/etc/accessibility.js
+++ b/StoneIsland/www/js/lib/etc/accessibility.js
@@ -1,9 +1,61 @@
-$(function(){
- $("h1").each(function(){
- this['aria-label'] = 'Section title is ' + this.innerText
- })
-})
+var accessibility = (function() {
+
+ var accessibility = {}
+ accessibility.voiceOver = false
+
+ accessibility.init = function(ready) {
+ accessibility.bind()
+ if ('MobileAccessibility' in window) {
+ accessibility.build(ready)
+ } else {
+ ready()
+ }
+ }
+
+ accessibility.build = function(ready) {
+ MobileAccessibility.usePreferredTextZoom(true);
+ MobileAccessibility.getTextZoom(function getTextZoomCallback(textZoom) {
+ console.log('WebView text should be scaled to the preferred value ' + textZoom + '%')
+ if (textZoom > 100) {
+ app.accessible = true
+ $("html").addClass('accessible')
+ }
+ });
+ MobileAccessibility.isVoiceOverRunning(function(state){
+ console.log('Screen reader: ' + state)
+ accessibility.voiceOver = state
+ if (state) {
+ $('html').addClass('iscroll')
+ } else {
+ $('html').addClass('vscroll')
+ }
+ ready()
+ })
+ }
+
+ accessibility.bind = function() {
+ $("h1").each(function(){
+ this['aria-label'] = 'Section title is ' + this.innerText
+ })
+ if ('MobileAccessibilityNotifications' in window) {
+ window.addEventListener(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED,
+ accessibility.onScreenReaderStatusChanged, false)
+ }
+ }
+
+ accessibility.onScreenReaderStatusChanged = function(info) {
+ if (info && typeof info.isScreenReaderRunning !== "undefined") {
+ if (info.isScreenReaderRunning) {
+ console.log("Screen reader: ON");
+ } else {
+ console.log("Screen reader: OFF");
+ }
+ }
+ }
+
+ return accessibility
+})()
function stonewash (s) {
return s.replace(/'0/g, '20').replace(/_/g, ' ')
-} \ No newline at end of file
+}
diff --git a/StoneIsland/www/js/lib/etc/scroll.js b/StoneIsland/www/js/lib/etc/scroll.js
new file mode 100644
index 00000000..253921e1
--- /dev/null
+++ b/StoneIsland/www/js/lib/etc/scroll.js
@@ -0,0 +1,29 @@
+// stub for native scroller when in voiceover mode
+function NativeScroll(el) {
+ var Scroller = {
+ x: 0,
+ y: 0,
+ $el: $(el),
+ }
+
+ Scroller.refresh = function(){}
+ Scroller.on = function(){}
+ Scroller.off = function(){}
+
+ Scroller.scrollTo = function(x, y) {
+ Scroller.$el.scrollTop(y)
+ }
+ Scroller.scrollToElement = function(selector) {
+ var y = $(selector).offset().top
+ Scroller.$el.scrollTop(y)
+ }
+
+ return Scroller
+}
+
+function ScrollFactory (el, opt) {
+ if (accessibility.voiceOver) {
+ return NativeScroll(el)
+ }
+ return new IScroll(el, opt)
+}