rave-accessibility.min.js 9.0 KB

12345678910111213141516171819202122
  1. // IBM Rapidly Adaptive Visualization Engine - (C) Copyright IBM Corp. 2015
  2. (function(){function Xa(){return function(Sa){return Sa}}function s(){return function(){}}function z(Sa){return function(ba){this[Sa]=ba}}function A(Sa){return function(){return this[Sa]}}function D(Sa){return function(){return Sa}}
  3. var a=window.rave,b=a._.rave_document,c={},d=a,e=a._.com_ibm_rave_core_nativeImpl_Declare,f=a.internal.Selector,g=a.internal.SelectorDelegate,h=a.navigation.internal.FocusController,k=a.navigation,l=
  4. c.AccessibilityConstants={};l.SELECTOR_ID="raveAccessibility";l.ACCESSIBLE_INFO_KEY="__accessibleInfo__";l.SHADOW_TREE_BUILDER_KEY="__shadowTreeBuilder__";var n={extend:function(a){var b=a.appendChild;a.appendChild=function(a){b.call(this,a);d.configuration.extendRecursive(a);var c=p.Zg(this);c&&(p.yh(a,c),c.Jm(this,a))};var c=a.insertBefore;a.insertBefore=function(a,b){c.call(this,a,b);d.configuration.extendRecursive(a);var e=p.Zg(this);e&&(p.yh(a,e),e.tB(this,a,b))};var e=a.removeChild;a.removeChild=
  5. function(a){var b=this.rave_getChildNodes().indexOf(a);if(-1!=b){e.call(this,a);d.configuration.extendRecursive(a);var c=p.Zg(a);c&&(c.uB(this,a,b),p.yh(a,null));return!0}return!1};var f=a.rave_setProperty;a.rave_setProperty=function(a,b){f.call(this,a,b);if(l.ACCESSIBLE_INFO_KEY==a){var c=p.Zg(this);c&&c.sB(this)}}},gn:function(){d.configuration.addSceneNodeExtensionFactory("http://www.w3.org/2000/svg",function(a,b){(b&&b.rave_hasProperty(l.SHADOW_TREE_BUILDER_KEY)||a.rave_hasProperty(l.SHADOW_TREE_BUILDER_KEY))&&
  6. n.extend(a)},0)}},p={Zg:function(a){return a.rave_getProperty(l.SHADOW_TREE_BUILDER_KEY)},wc:function(a){return null!=a.rave_getProperty(l.ACCESSIBLE_INFO_KEY)},yh:function(a,b){a.rave_setProperty(l.SHADOW_TREE_BUILDER_KEY,b);if(a.rave_hasChildNodes())for(var c=0,d=a.rave_getChildNodes(),e=d.length;c<e;++c)p.yh(d[c],b)},mC:function(){f.extension(l.SELECTOR_ID,function(){return new r})}},r=c.AccessibilitySelector=e(g,{constructor:s(),create:function(a){return(new r).setDelegate(a)},Kx:function(){var a=
  7. this.node(),a=a?a.rave_getOwner():null;return!a?null:u.Sy(a)},Lx:function(a){this.each(function(){var b=this.rave_getOwner();if(b&&(u.Ur(b,a),null!=a)){var c=b.rave_getProperty(l.ACCESSIBLE_INFO_KEY);c||(c={},c.label=a,b.rave_setProperty(l.ACCESSIBLE_INFO_KEY,c))}});return this},Mx:function(a){this.each(function(b,c,d){if(b=this.rave_getOwner())c=a.call(b,b.rave_getData(),c,d),c=null!=c?c+"":"",u.Ur(b,c),null!=c&&(d=b.rave_getProperty(l.ACCESSIBLE_INFO_KEY),d||(d={},d.label=c,b.rave_setProperty(l.ACCESSIBLE_INFO_KEY,
  8. d)))});return this},sz:function(){var a=this.node();return!a?null:a.rave_getProperty(l.ACCESSIBLE_INFO_KEY)},tz:function(a){this.each(function(){this.rave_setProperty(l.ACCESSIBLE_INFO_KEY,a)});return this},uz:function(a){this.each(function(b,c,d){this.rave_setProperty(l.ACCESSIBLE_INFO_KEY,a.call(this,b,c,d))});return this},description:function(a){var b=arguments;return 0==b.length?this.Kx():1==b.length&&(null==a||"string"===typeof a)?this.Lx(a):this.Mx(a)},info:function(a){var b=arguments;return 0==
  9. b.length?this.sz():1==b.length&&"function"===typeof a?this.uz(a):this.tz(a)}}),t=function(){function c(a){a[h]&&(delete a[h][k],delete a[h]);a=a.childNodes;for(var b=0;b<a.length;b++)c(a[b])}function d(a,b){a.setAttribute("aria-label",b.label||"");a.setAttribute("aria-hint",b.hint||"");a.setAttribute("role",b.role||"");for(var c=0,e,f=a.attributes;c<f.length;c++)e=f[c].nodeName,0==e.indexOf("data-")&&a.removeAttribute(e);for(var g in b)if(b.hasOwnProperty(g))switch(g){case "label":case "hint":case "role":break;
  10. default:a.setAttribute("data-"+g,b[g])}}function f(a,b){b&&(b.label&&b.label.length)&&(a.textContent=b.label)}function g(c,e,m){var n=e.rave_getProperty(l.ACCESSIBLE_INFO_KEY);if(n){var p=e.rave_getProperty(h),q=a.select(c.rave_getProperty(h)),r=q.select("ul");if(!p&&(r.empty()&&(r=q.append("ul")),p=b.createElement("li"),p[k]=e,e.rave_setProperty(h,p),d(p,n),f(p,n),e.rave_hasChildNodes())){n=e.rave_getChildNodes();for(q=0;q<n.length;q++)this.Jm(e,n[q])}r=r.node();3==arguments.length?r.insertBefore(p,
  11. m.rave_getProperty(h)):r.appendChild(p)}}var h="__shadowDomNode__",k="__sceneNode__";return e({Jm:g,tB:g,uB:function(a,b){var c=b[h],d;c==this.vd&&(d=c.previousElementSibling,d||(d=c.nextElementSibling,d||(d=c.parentNode.parentNode)));this.ms(b);d&&this.uv.fireFocus(d[k])},sB:function(a){var c=a.rave_getProperty(l.ACCESSIBLE_INFO_KEY),e=a.rave_getProperty(h);if(c)if(e){d(e,c);a=e.childNodes;for(var f=0;f<a.length;f++)3==a[f].nodeType&&e.removeChild(a[f]);c.label&&c.label.length&&e.insertBefore(b.createTextNode(c.label),
  12. e.firstChild)}else(c=a.parentNode)&&g(c,a);else e&&this.ms(a)},TC:function(c,e){this.uv=e;var g=c[h],m=c.rave_getProperty(l.ACCESSIBLE_INFO_KEY);m||(m={},c.rave_setProperty(l.ACCESSIBLE_INFO_KEY,m));if(!g){g=b.createElement("div");g[k]=c;g.setAttribute("class","rave-a11y");a.select(g).style({width:0,height:0,left:-1E4,top:-1E4,position:"absolute",overflow:"hidden"},"important");c.parentNode.insertBefore(g,c);c[h]=g;d(g,m);f(g,m);if(c.rave_hasChildNodes())for(var m=c.rave_getChildNodes(),n=0;n<m.length;n++)this.Jm(c,
  13. m[n]);this.So=+c.getAttribute("tabindex");c.removeAttribute("tabindex");this.vd=g;this.vd.setAttribute("tabindex",this.So)}},ms:function(a){if(shadowDomNode=a[h])shadowDomNode.parentNode.removeChild(shadowDomNode),c(a)},focus:function(a){var b;a&&(b=a[h]);this.vd!=b&&(a=document.activeElement===this.vd,this.vd&&(this.vd.removeAttribute("tabindex"),this.vd.blur()),b&&(b.setAttribute("tabindex",this.So),a&&b.focus()),this.vd=b)}})}(),u={Sy:function(a){return a.getAttribute("aria-label")},Ur:function(a,
  14. b){a.setAttribute("aria-label",b)},nx:function(){return new t}},g=e({keyboard:function(){return new y}});g.INSTANCE=new g;var x=c.Accessibility={};x.init=function(){n.gn();p.mC()};x.ACCESSIBLE_INFO_KEY=l.ACCESSIBLE_INFO_KEY;x.SHADOW_TREE_BUILDER_KEY=l.SHADOW_TREE_BUILDER_KEY;x.SELECTOR_ID=l.SELECTOR_ID;x.navigation=g.INSTANCE;x.init();a.accessibility=x;var y=c.AccessibleKeyboard=e({_$functionClassMethod:function(){function a(b){if(null!==b||1<arguments.length)b=Array.prototype.slice.call(arguments,
  15. 0);a.bind(b[0]);return null}return a},constructor:function(){this.ue=k.keybinding();this.T=d.behavior.focusEventHandler();this.Ok=function(){return u.nx()};var b=this;this.next=function(c){if(null!==c||1<arguments.length)c=Array.prototype.slice.call(arguments,0);var d=b.T.va;if(d&&!y.Jb(d))for(;d=h.nextFocusableNode(d);)if(p.wc(d)){b.T.fireFocus(d);break}a.event.preventDefault();return null};this.previous=function(c){if(null!==c||1<arguments.length)c=Array.prototype.slice.call(arguments,0);var d=
  16. b.T.va;if(d&&!y.Jb(d))for(;d=h.previousFocusableNode(d);)if(p.wc(d)){b.T.fireFocus(d);break}a.event.preventDefault();return null};this.iB=function(c){if(null!==c||1<arguments.length)c=Array.prototype.slice.call(arguments,0);var d=b.T.va;if(d&&!y.Jb(d)){for(var e=0,f=d,g=d;20>e&&g;)if((g=h.nextFocusableNode(g))&&p.wc(g))f=g,e++;f!=d&&b.T.fireFocus(f)}a.event.preventDefault();return null};this.SB=function(c){if(null!==c||1<arguments.length)c=Array.prototype.slice.call(arguments,0);var d=b.T.va;if(d&&
  17. !y.Jb(d)){for(var e=0,f=d,g=d;20>e&&g;)if((g=h.previousFocusableNode(g))&&p.wc(g))f=g,e++;f!=d&&b.T.fireFocus(f)}a.event.preventDefault();return null};this.Vg=function(c){if(null!==c||1<arguments.length)c=Array.prototype.slice.call(arguments,0);var d=b.T.va;if(d&&!y.Jb(d)){var e=h.nextFocusableNodeFromStart(d);if(!p.wc(e))for(;(e=h.nextFocusableNode(e))&&!p.wc(e););e&&d!=e&&b.T.fireFocus(e)}a.event.preventDefault();return null};this.Tz=function(c){if(null!==c||1<arguments.length)c=Array.prototype.slice.call(arguments,
  18. 0);var d=b.T.va;if(d&&!y.Jb(d)){var e=h.previousFocusableNodeFromEnd(d);if(!p.wc(e))for(;(e=h.previousFocusableNode(e))&&!p.wc(e););e&&d!=e&&b.T.fireFocus(e)}a.event.preventDefault();return null};this.nextLevel=function(c){if(null!==c||1<arguments.length)c=Array.prototype.slice.call(arguments,0);var d=b.T.va;if(d&&d.rave_hasChildNodes()){d=h.nextLevelFocusableNode(d);if(!p.wc(d))for(;(d=h.nextFocusableNode(d))&&!p.wc(d););d&&b.T.fireFocus(d)}a.event.preventDefault();return null};this.previousLevel=
  19. function(c){if(null!==c||1<arguments.length)c=Array.prototype.slice.call(arguments,0);var d=b.T.va;d&&!y.Jb(d)&&(d=h.previousLevelFocusableNode(d))&&b.T.fireFocus(d);a.event.preventDefault();return null};this.ue.on(40,this.next).on(38,this.previous).on(34,this.iB).on(33,this.SB).on(36,this.Vg).on(35,this.Tz).on(39,this.nextLevel).on(37,this.previousLevel)},bind:function(a){var b=this;a.each(function(a,c,e){var f=d.select(this);a=b.Ok.call(this,a,c,e);p.yh(this,a);d.configuration.extendRecursive(this);
  20. a.TC(this,b.T);f.on("ravefocus",y.Dt);d.select(this.rave_getOwner()).call(b.ue);f.property(y.jg,!0);b.T.va=this})},mI:A("Ok"),UC:function(a){this.Ok=a;return this},keyBinding:A("ue"),Ey:A("T"),bm:function(a){this.T=a;return this},shadowTreeBuilder:function(a){return 0==arguments.length?this.Ok:this.UC(a)},focusEventHandler:function(a){return 0==arguments.length?this.T:this.bm(a)}});y.Jb=function(a){return null!=a.rave_getProperty(y.jg)};y.jg="__rave-kbnav-root__";y.dv=20;y.Dt=function(a,b,c,d){a=
  21. p.Zg(d.target);d.target?a.focus(d.target):a.focus(null)}})();