make speaker notes keyboard accessible
Places div.speaker-notes in default kbd Tab order, and when focused, prevent slide navigation with up/down arrows, allowing up/down arrow keys to scroll div.speaker-notes.
This commit is contained in:
parent
3d49b1dea3
commit
dec6d1745b
@ -495,6 +495,7 @@
|
|||||||
// Element containing notes that are visible to the audience
|
// Element containing notes that are visible to the audience
|
||||||
dom.speakerNotes = createSingletonNode( dom.wrapper, 'div', 'speaker-notes', null );
|
dom.speakerNotes = createSingletonNode( dom.wrapper, 'div', 'speaker-notes', null );
|
||||||
dom.speakerNotes.setAttribute( 'data-prevent-swipe', '' );
|
dom.speakerNotes.setAttribute( 'data-prevent-swipe', '' );
|
||||||
|
dom.speakerNotes.setAttribute( 'tabindex', '0');
|
||||||
|
|
||||||
// Overlay graphic which is displayed during the paused mode
|
// Overlay graphic which is displayed during the paused mode
|
||||||
createSingletonNode( dom.wrapper, 'div', 'pause-overlay', null );
|
createSingletonNode( dom.wrapper, 'div', 'pause-overlay', null );
|
||||||
@ -3963,10 +3964,11 @@
|
|||||||
// the keyboard
|
// the keyboard
|
||||||
var activeElementIsCE = document.activeElement && document.activeElement.contentEditable !== 'inherit';
|
var activeElementIsCE = document.activeElement && document.activeElement.contentEditable !== 'inherit';
|
||||||
var activeElementIsInput = document.activeElement && document.activeElement.tagName && /input|textarea/i.test( document.activeElement.tagName );
|
var activeElementIsInput = document.activeElement && document.activeElement.tagName && /input|textarea/i.test( document.activeElement.tagName );
|
||||||
|
var activeElementIsNotes = document.activeElement && document.activeElement.className && /speaker-notes/i.test( document.activeElement.className);
|
||||||
|
|
||||||
// Disregard the event if there's a focused element or a
|
// Disregard the event if there's a focused element or a
|
||||||
// keyboard modifier key is present
|
// keyboard modifier key is present
|
||||||
if( activeElementIsCE || activeElementIsInput || (event.shiftKey && event.keyCode !== 32) || event.altKey || event.ctrlKey || event.metaKey ) return;
|
if( activeElementIsCE || activeElementIsInput || activeElementIsNotes || (event.shiftKey && event.keyCode !== 32) || event.altKey || event.ctrlKey || event.metaKey ) return;
|
||||||
|
|
||||||
// While paused only allow resume keyboard events; 'b', '.''
|
// While paused only allow resume keyboard events; 'b', '.''
|
||||||
var resumeKeyCodes = [66,190,191];
|
var resumeKeyCodes = [66,190,191];
|
||||||
|
Loading…
Reference in New Issue
Block a user