From 94d67b5ebc38bbaf3ea675c2efc50bf018727031 Mon Sep 17 00:00:00 2001 From: Allan Jardine Date: Tue, 1 Oct 2019 13:37:54 +0000 Subject: [PATCH] Fix: Disabled paging buttons should be tab index -1. Fixes #146 --- .datatables-commit-sync | 2 +- media/js/jquery.dataTables.js | 36 +++++++++---- media/js/jquery.dataTables.min.js | 84 +++++++++++++++---------------- 3 files changed, 68 insertions(+), 54 deletions(-) diff --git a/.datatables-commit-sync b/.datatables-commit-sync index 0e6ee857..3197ab26 100644 --- a/.datatables-commit-sync +++ b/.datatables-commit-sync @@ -1 +1 @@ -aa8b0010d5498f74e84f421b8e32c8bf76363381 +33219ff04498697da2c83b99a11d200e669e1cd3 diff --git a/media/js/jquery.dataTables.js b/media/js/jquery.dataTables.js index d947e5b0..dada6c41 100644 --- a/media/js/jquery.dataTables.js +++ b/media/js/jquery.dataTables.js @@ -14544,7 +14544,8 @@ var btnDisplay, btnClass, counter=0; var attach = function( container, buttons ) { - var i, ien, node, button; + var i, ien, node, button, tabIndex; + var disabledClass = classes.sPageButtonDisabled; var clickHandler = function ( e ) { _fnPageChange( settings, e.data.action, true ); }; @@ -14559,7 +14560,8 @@ } else { btnDisplay = null; - btnClass = ''; + btnClass = button; + tabIndex = settings.iTabIndex; switch ( button ) { case 'ellipsis': @@ -14568,26 +14570,38 @@ case 'first': btnDisplay = lang.sFirst; - btnClass = button + (page > 0 ? - '' : ' '+classes.sPageButtonDisabled); + + if ( page === 0 ) { + tabIndex = -1; + btnClass += ' ' + disabledClass; + } break; case 'previous': btnDisplay = lang.sPrevious; - btnClass = button + (page > 0 ? - '' : ' '+classes.sPageButtonDisabled); + + if ( page === 0 ) { + tabIndex = -1; + btnClass += ' ' + disabledClass; + } break; case 'next': btnDisplay = lang.sNext; - btnClass = button + (page < pages-1 ? - '' : ' '+classes.sPageButtonDisabled); + + if ( page < pages-1 ) { + tabIndex = -1; + btnClass += ' ' + disabledClass; + } break; case 'last': btnDisplay = lang.sLast; - btnClass = button + (page < pages-1 ? - '' : ' '+classes.sPageButtonDisabled); + + if ( page < pages-1 ) { + tabIndex = -1; + btnClass += ' ' + disabledClass; + } break; default: @@ -14603,7 +14617,7 @@ 'aria-controls': settings.sTableId, 'aria-label': aria[ button ], 'data-dt-idx': counter, - 'tabindex': settings.iTabIndex, + 'tabindex': tabIndex, 'id': idx === 0 && typeof button === 'string' ? settings.sTableId +'_'+ button : null diff --git a/media/js/jquery.dataTables.min.js b/media/js/jquery.dataTables.min.js index 4fbcec16..97672b92 100644 --- a/media/js/jquery.dataTables.min.js +++ b/media/js/jquery.dataTables.min.js @@ -25,22 +25,22 @@ var d=a.oClasses,e=f(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null l=b.mRender?U(b.mRender):null;c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=f.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=k(a,b,n,c);return l&&b?l(d,b,a,c):d};b.fnSetData=function(a,b,c){return Q(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==f.inArray("asc",b.asSorting);c=-1!==f.inArray("desc",b.asSorting);b.bSortable&&(a||c)?a&&!c?(b.sSortingClass= d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI):(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI="")}function aa(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ja(a);for(var c=0,d=b.length;cp[m])d(k.length+ -p[m],l);else if("string"===typeof p[m]){var v=0;for(g=k.length;vp[m])d(k.length+ +p[m],l);else if("string"===typeof p[m]){var w=0;for(g=k.length;wb&&a[e]--; -1!=d&&c===n&&a.splice(d,1)}function ea(a,b,c,d){var e=a.aoData[b],h,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=I(a,b,d,"display")};if("dom"!==c&&(c&&"auto"!==c||"dom"!==e.src)){var k=e.anCells;if(k)if(d!==n)g(k[d],d);else for(c=0,h=k.length;c").appendTo(d));var l=0;for(b=k.length;ltr").attr("role","row");f(d).find(">tr>th, >tr>td").addClass(g.sHeaderTH);f(e).find(">tr>th, >tr>td").addClass(g.sFooterTH);if(null!==e)for(a=a.aoFooter[0],l=0,b=a.length;l=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);g=a._iDisplayStart;var p=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,K(a,!1);else if(!k)a.iDraw++;else if(!a.bDestroying&&!qb(a))return;if(0!==l.length)for(h=k?a.aoData.length:p,k=k?0:g;k",{"class":e?d[0]:""}).append(f("",{valign:"top",colSpan:W(a),"class":a.oClasses.sRowEmpty}).html(c))[0];A(a,"aoHeaderCallback","header",[f(a.nTHead).children("tr")[0], +"preDraw",[a]);if(-1!==f.inArray(!1,b))K(a,!1);else{b=[];var c=0,d=a.asStripeClasses,e=d.length,h=a.oLanguage,g=a.iInitDisplayStart,k="ssp"==D(a),l=a.aiDisplay;a.bDrawing=!0;g!==n&&-1!==g&&(a._iDisplayStart=k?g:g>=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);g=a._iDisplayStart;var p=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,K(a,!1);else if(!k)a.iDraw++;else if(!a.bDestroying&&!qb(a))return;if(0!==l.length)for(h=k?a.aoData.length:p,k=k?0:g;k",{"class":e?d[0]:""}).append(f("",{valign:"top",colSpan:W(a),"class":a.oClasses.sRowEmpty}).html(c))[0];A(a,"aoHeaderCallback","header",[f(a.nTHead).children("tr")[0], Oa(a),g,p,l]);A(a,"aoFooterCallback","footer",[f(a.nTFoot).children("tr")[0],Oa(a),g,p,l]);d=f(a.nTBody);d.children().detach();d.append(f(b));A(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function V(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&rb(a);d?ia(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;S(a);a._drawHold=!1}function sb(a){var b=a.oClasses,c=f(a.nTable);c=f("
").insertBefore(c);var d=a.oFeatures,e= f("
",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var h=a.sDom.split(""),g,k,l,p,m,n,u=0;u")[0];p=h[u+1];if("'"==p||'"'==p){m="";for(n=2;h[u+n]!=p;)m+=h[u+n],n++;"H"==m?m=b.sJUIHeader:"F"==m&&(m=b.sJUIFooter);-1!=m.indexOf(".")?(p=m.split("."),l.id=p[0].substr(1,p[0].length-1),l.className=p[1]):"#"==m.charAt(0)?l.id=m.substr(1, m.length-1):l.className=m;u+=n}e.append(l);e=f(l)}else if(">"==k)e=e.parent();else if("l"==k&&d.bPaginate&&d.bLengthChange)g=tb(a);else if("f"==k&&d.bFilter)g=ub(a);else if("r"==k&&d.bProcessing)g=vb(a);else if("t"==k)g=wb(a);else if("i"==k&&d.bInfo)g=xb(a);else if("p"==k&&d.bPaginate)g=yb(a);else if(0!==q.ext.feature.length)for(l=q.ext.feature,n=0,p=l.length;n',k=d.sSearch;k=k.match(/_INPUT_/)?k.replace("_INPUT_",g):k+g;b=f("
",{id:h.f?null:c+"_filter","class":b.sFilter}).append(f("