Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
2df00412
Commit
2df00412
authored
Sep 18, 2013
by
jmclaus
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #933 from edx/jmclaus/bugfix_tabbing_captions
Tabbing through captions
parents
c0b710b8
7659c5b1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
116 additions
and
2 deletions
+116
-2
common/lib/xmodule/xmodule/css/video/display.scss
+7
-0
common/lib/xmodule/xmodule/js/spec/video/video_caption_spec.js
+109
-2
common/lib/xmodule/xmodule/js/src/video/09_video_caption.js
+0
-0
No files found.
common/lib/xmodule/xmodule/css/video/display.scss
View file @
2df00412
...
...
@@ -525,12 +525,19 @@ div.video {
margin-bottom
:
8px
;
padding
:
0
;
line-height
:
lh
();
outline-width
:
0px
;
outline-style
:
none
;
&
.current
{
color
:
#333
;
font-weight
:
700
;
}
&
.focused
{
outline-width
:
1px
;
outline-style
:
dotted
;
}
&
:hover
{
color
:
$blue
;
}
...
...
common/lib/xmodule/xmodule/js/spec/video/video_caption_spec.js
View file @
2df00412
...
...
@@ -93,6 +93,7 @@
$
(
'.subtitles li[data-index]'
).
each
(
function
(
index
,
link
)
{
expect
(
$
(
link
)).
toHaveData
(
'index'
,
index
);
expect
(
$
(
link
)).
toHaveData
(
'start'
,
captionsData
.
start
[
index
]);
expect
(
$
(
link
)).
toHaveAttr
(
'tabindex'
,
0
);
expect
(
$
(
link
)).
toHaveText
(
captionsData
.
text
[
index
]);
});
});
...
...
@@ -104,7 +105,13 @@
it
(
'bind all the caption link'
,
function
()
{
$
(
'.subtitles li[data-index]'
).
each
(
function
(
index
,
link
)
{
expect
(
$
(
link
)).
toHandleWith
(
'click'
,
videoCaption
.
seekPlayer
);
expect
(
$
(
link
)).
toHandleWith
(
'mouseover'
,
videoCaption
.
captionMouseOverOut
);
expect
(
$
(
link
)).
toHandleWith
(
'mouseout'
,
videoCaption
.
captionMouseOverOut
);
expect
(
$
(
link
)).
toHandleWith
(
'mousedown'
,
videoCaption
.
captionMouseDown
);
expect
(
$
(
link
)).
toHandleWith
(
'click'
,
videoCaption
.
captionClick
);
expect
(
$
(
link
)).
toHandleWith
(
'focus'
,
videoCaption
.
captionFocus
);
expect
(
$
(
link
)).
toHandleWith
(
'blur'
,
videoCaption
.
captionBlur
);
expect
(
$
(
link
)).
toHandleWith
(
'keydown'
,
videoCaption
.
captionKeyDown
);
});
});
...
...
@@ -278,6 +285,7 @@
$
(
'.subtitles li[data-index]'
).
each
(
function
(
index
,
link
)
{
expect
(
$
(
link
)).
toHaveData
(
'index'
,
index
);
expect
(
$
(
link
)).
toHaveData
(
'start'
,
captionsData
.
start
[
index
]);
expect
(
$
(
link
)).
toHaveAttr
(
'tabindex'
,
0
);
expect
(
$
(
link
)).
toHaveText
(
captionsData
.
text
[
index
]);
});
});
...
...
@@ -289,7 +297,13 @@
it
(
'bind all the caption link'
,
function
()
{
$
(
'.subtitles li[data-index]'
).
each
(
function
(
index
,
link
)
{
expect
(
$
(
link
)).
toHandleWith
(
'click'
,
videoCaption
.
seekPlayer
);
expect
(
$
(
link
)).
toHandleWith
(
'mouseover'
,
videoCaption
.
captionMouseOverOut
);
expect
(
$
(
link
)).
toHandleWith
(
'mouseout'
,
videoCaption
.
captionMouseOverOut
);
expect
(
$
(
link
)).
toHandleWith
(
'mousedown'
,
videoCaption
.
captionMouseDown
);
expect
(
$
(
link
)).
toHandleWith
(
'click'
,
videoCaption
.
captionClick
);
expect
(
$
(
link
)).
toHandleWith
(
'focus'
,
videoCaption
.
captionFocus
);
expect
(
$
(
link
)).
toHandleWith
(
'blur'
,
videoCaption
.
captionBlur
);
expect
(
$
(
link
)).
toHandleWith
(
'keydown'
,
videoCaption
.
captionKeyDown
);
});
});
...
...
@@ -558,6 +572,99 @@
});
});
});
describe
(
'caption accessibility'
,
function
()
{
beforeEach
(
function
()
{
initialize
();
});
describe
(
'when getting focus through TAB key'
,
function
()
{
beforeEach
(
function
()
{
videoCaption
.
isMouseFocus
=
false
;
$
(
'.subtitles li[data-index=0]'
).
trigger
(
jQuery
.
Event
(
'focus'
));
});
it
(
'shows an outline around the caption'
,
function
()
{
expect
(
$
(
'.subtitles li[data-index=0]'
)).
toHaveClass
(
'focused'
);
});
it
(
'has automatic scrolling disabled'
,
function
()
{
expect
(
videoCaption
.
autoScrolling
).
toBe
(
false
);
});
});
describe
(
'when loosing focus through TAB key'
,
function
()
{
beforeEach
(
function
()
{
$
(
'.subtitles li[data-index=0]'
).
trigger
(
jQuery
.
Event
(
'blur'
));
});
it
(
'does not show an outline around the caption'
,
function
()
{
expect
(
$
(
'.subtitles li[data-index=0]'
)).
not
.
toHaveClass
(
'focused'
);
});
it
(
'has automatic scrolling enabled'
,
function
()
{
expect
(
videoCaption
.
autoScrolling
).
toBe
(
true
);
});
});
describe
(
'when same caption gets the focus through mouse after having focus through TAB key'
,
function
()
{
beforeEach
(
function
()
{
videoCaption
.
isMouseFocus
=
false
;
$
(
'.subtitles li[data-index=0]'
).
trigger
(
jQuery
.
Event
(
'focus'
));
$
(
'.subtitles li[data-index=0]'
).
trigger
(
jQuery
.
Event
(
'mousedown'
));
});
it
(
'does not show an outline around it'
,
function
()
{
expect
(
$
(
'.subtitles li[data-index=0]'
)).
not
.
toHaveClass
(
'focused'
);
});
it
(
'has automatic scrolling enabled'
,
function
()
{
expect
(
videoCaption
.
autoScrolling
).
toBe
(
true
);
});
});
describe
(
'when a second caption gets focus through mouse after first had focus through TAB key'
,
function
()
{
beforeEach
(
function
()
{
videoCaption
.
isMouseFocus
=
false
;
$
(
'.subtitles li[data-index=0]'
).
trigger
(
jQuery
.
Event
(
'focus'
));
$
(
'.subtitles li[data-index=0]'
).
trigger
(
jQuery
.
Event
(
'blur'
));
videoCaption
.
isMouseFocus
=
true
;
$
(
'.subtitles li[data-index=1]'
).
trigger
(
jQuery
.
Event
(
'mousedown'
));
});
it
(
'does not show an outline around the first'
,
function
()
{
expect
(
$
(
'.subtitles li[data-index=0]'
)).
not
.
toHaveClass
(
'focused'
);
});
it
(
'does not show an outline around the second'
,
function
()
{
expect
(
$
(
'.subtitles li[data-index=1]'
)).
not
.
toHaveClass
(
'focused'
);
});
it
(
'has automatic scrolling enabled'
,
function
()
{
expect
(
videoCaption
.
autoScrolling
).
toBe
(
true
);
});
});
describe
(
'when enter key is pressed on a caption'
,
function
()
{
beforeEach
(
function
()
{
var
e
;
spyOn
(
videoCaption
,
'seekPlayer'
).
andCallThrough
();
videoCaption
.
isMouseFocus
=
false
;
$
(
'.subtitles li[data-index=0]'
).
trigger
(
jQuery
.
Event
(
'focus'
));
e
=
jQuery
.
Event
(
'keydown'
);
e
.
which
=
13
;
// ENTER key
$
(
'.subtitles li[data-index=0]'
).
trigger
(
e
);
});
it
(
'shows an outline around it'
,
function
()
{
expect
(
$
(
'.subtitles li[data-index=0]'
)).
toHaveClass
(
'focused'
);
});
it
(
'calls seekPlayer'
,
function
()
{
expect
(
videoCaption
.
seekPlayer
).
toHaveBeenCalled
();
});
});
});
});
}).
call
(
this
);
common/lib/xmodule/xmodule/js/src/video/09_video_caption.js
View file @
2df00412
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment