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
70b602fb
Commit
70b602fb
authored
Feb 10, 2014
by
Dave St.Germain
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2498 from edx/dcs/a11y-sequence-nav
Accessibility improvements to the sequence navigation
parents
01ac04ca
4810bd6d
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
49 additions
and
26 deletions
+49
-26
common/lib/xmodule/xmodule/css/sequence/display.scss
+1
-1
common/lib/xmodule/xmodule/js/src/conditional/display.coffee
+2
-2
common/lib/xmodule/xmodule/js/src/sequence/display.coffee
+16
-8
common/templates/xblock_wrapper.html
+1
-1
lms/static/sass/course/courseware/_courseware.scss
+8
-2
lms/templates/seq_module.html
+20
-11
lms/templates/vert_module.html
+1
-1
No files found.
common/lib/xmodule/xmodule/css/sequence/display.scss
View file @
70b602fb
...
...
@@ -323,7 +323,7 @@ nav.sequence-nav {
}
}
div
.seq_contents
{
.seq_contents
{
display
:
none
;
}
...
...
common/lib/xmodule/xmodule/js/src/conditional/display.coffee
View file @
70b602fb
...
...
@@ -22,12 +22,12 @@ class @Conditional
parentId
=
parentEl
.
attr
'id'
if
response
.
message
is
false
if
parent
Id
.
indexOf
(
'vert'
)
is
0
if
parent
El
.
hasClass
(
'vert'
)
parentEl
.
hide
()
else
$
(
element
).
hide
()
else
if
parent
Id
.
indexOf
(
'vert'
)
is
0
if
parent
El
.
hasClass
(
'vert'
)
parentEl
.
show
()
else
$
(
element
).
show
()
...
...
common/lib/xmodule/xmodule/js/src/sequence/display.coffee
View file @
70b602fb
...
...
@@ -2,6 +2,7 @@ class @Sequence
constructor
:
(
element
)
->
@
el
=
$
(
element
).
find
(
'.sequence'
)
@
contents
=
@
$
(
'.seq_contents'
)
@
content_container
=
@
$
(
'#seq_content'
)
@
num_contents
=
@
contents
.
length
@
id
=
@
el
.
data
(
'id'
)
@
ajaxUrl
=
@
el
.
data
(
'ajax-url'
)
...
...
@@ -22,8 +23,8 @@ class @Sequence
updatePageTitle
:
->
# update the page title to include the current section
position_link
=
@
link_for
(
@
position
)
if
position_link
and
position_link
.
data
(
'title'
)
document
.
title
=
position_link
.
data
(
'title'
)
+
@
base_page_title
if
position_link
and
position_link
.
attr
(
'title'
)
document
.
title
=
position_link
.
attr
(
'title'
)
+
@
base_page_title
hookUpProgressEvent
:
->
$
(
'.problems-wrapper'
).
bind
'progressChanged'
,
@
updateProgress
...
...
@@ -97,10 +98,12 @@ class @Sequence
# Added for aborting video bufferization, see ../video/10_main.js
@
el
.
trigger
"sequence:change"
@
mark_active
new_position
@
$
(
'#seq_content'
).
html
@
contents
.
eq
(
new_position
-
1
).
text
()
XBlock
.
initializeBlocks
(
@
$
(
'#seq_content'
))
current_tab
=
@
contents
.
eq
(
new_position
-
1
)
@
content_container
.
html
(
current_tab
.
text
()).
attr
(
"aria-labelledby"
,
current_tab
.
attr
(
"aria-labelledby"
))
XBlock
.
initializeBlocks
(
@
content_container
)
MathJax
.
Hub
.
Queue
([
"Typeset"
,
MathJax
.
Hub
,
"seq_content"
])
# NOTE: Actually redundant. Some other MathJax call also being performed
window
.
update_schematics
()
# For embedded circuit simulator exercises in 6.002x
@
position
=
new_position
...
...
@@ -108,10 +111,12 @@ class @Sequence
@
hookUpProgressEvent
()
@
updatePageTitle
()
sequence_links
=
@
$
(
'#seq_content
a.seqnav'
)
sequence_links
=
@
content_container
.
find
(
'
a.seqnav'
)
sequence_links
.
click
@
goto
@
$
(
"a.active"
).
blur
()
# Focus on the first available xblock.
@
content_container
.
find
(
'.vert .xblock :first'
).
focus
()
@
$
(
"a.active"
).
blur
()
goto
:
(
event
)
=>
event
.
preventDefault
()
if
$
(
event
.
target
).
hasClass
'seqnav'
# Links from courseware <a class='seqnav' href='n'>...</a>
...
...
@@ -187,8 +192,11 @@ class @Sequence
.
addClass
(
"visited"
)
mark_active
:
(
position
)
->
# Mark the correct tab as selected, for a11y helpfulness.
@
$
(
"#sequence-list a[aria-selected='true']"
).
attr
(
"aria-selected"
,
"false"
)
# Don't overwrite class attribute to avoid changing Progress class
element
=
@
link_for
(
position
)
element
.
removeClass
(
"inactive"
)
.
removeClass
(
"visited"
)
.
addClass
(
"active"
)
.
attr
(
"aria-selected"
,
"true"
)
common/templates/xblock_wrapper.html
View file @
70b602fb
<div
class=
"${' '.join(classes)}"
${
data_attributes
}
aria-label=
"${display_name}
"
>
<div
class=
"${' '.join(classes)}"
${
data_attributes
}
tabindex=
"0
"
>
${content}
</div>
lms/static/sass/course/courseware/_courseware.scss
View file @
70b602fb
...
...
@@ -46,13 +46,13 @@ div.course-wrapper {
}
}
ol
.vert-mod
{
.vert-mod
{
padding
:
0
;
margin
:
0
;
line-height
:
1
.4
;
list-style
:
none
;
>
li
{
>
div
{
@extend
.clearfix
;
border-bottom
:
1px
solid
#ddd
;
margin-bottom
:
15px
;
...
...
@@ -232,6 +232,12 @@ div.course-wrapper {
}
.xblock
{
&
:focus
{
outline
:
0
;
}
}
textarea
.short-form-response
{
height
:
200px
;
padding
:
5px
;
...
...
lms/templates/seq_module.html
View file @
70b602fb
...
...
@@ -3,22 +3,26 @@
<div
id=
"sequence_${element_id}"
class=
"sequence"
data-id=
"${item_id}"
data-position=
"${position}"
data-ajax-url=
"${ajax_url}"
>
<nav
class=
"sequence-nav"
>
<ul
class=
"sequence-nav-buttons"
>
<li
class=
"prev"
><a
href=
"#"
>
${_('Previous')}
</a></li>
<li
class=
"prev"
><a
role=
"button"
href=
"#"
>
${_('Previous')}
</a></li>
</ul>
<div
class=
"sequence-list-wrapper"
>
<ol
aria-label=
"${_('Section Navigation')}"
id=
"sequence-list"
>
<ol
role=
"tablist"
aria-label=
"${_('Section Navigation')}"
id=
"sequence-list"
>
% for idx, item in enumerate(items):
## TODO (vshnayder): add item.progress_detail either to the title or somewhere else.
## Make sure it gets updated after ajax calls.
## implementation note: will need to figure out how to handle combining detail
## statuses of multiple modules in js.
<li
aria-label=
"${item['title']}"
>
<li>
<a
class=
"seq_${item['type']} inactive progress-${item['progress_status']}"
data-id=
"${item['id']}"
data-element=
"${idx+1}"
data-title=
"${item['title']}"
href=
"javascript:void(0);"
>
href=
"javascript:void(0);"
title=
"${item['title']|h}"
aria-controls=
"seq_contents_${idx}"
id=
"tab_${idx}"
tabindex=
"0"
role=
"tab"
>
<p
aria-hidden=
"false"
>
${item['title']}
<span
class=
"sr"
aria-hidden=
"true"
>
, ${item['type']}
</span></p>
</a>
</li>
...
...
@@ -27,19 +31,24 @@
</div>
<ul
class=
"sequence-nav-buttons"
>
<li
class=
"next"
><a
href=
"#"
>
${_("Next")}
</a></li>
<li
class=
"next"
><a
role=
"button"
href=
"#"
>
${_("Next")}
</a></li>
</ul>
</nav>
% for item in items:
<div
class=
"seq_contents tex2jax_ignore asciimath2jax_ignore"
>
${item['content'] | h}
</div>
% for idx, item in enumerate(items):
<div
id=
"seq_contents_${idx}"
aria-labelledby=
"tab_${idx}"
aria-hidden=
"true"
class=
"seq_contents tex2jax_ignore asciimath2jax_ignore"
>
${item['content'] | h}
</div>
% endfor
<div
id=
"seq_content"
></div>
<div
id=
"seq_content"
role=
"tabpanel"
></div>
<nav
class=
"sequence-bottom"
>
<ul
aria-label=
"${_('Section Navigation')}"
class=
"sequence-nav-buttons"
>
<li
class=
"prev"
><a
href=
"#"
>
${_("Previous")}
</a></li>
<li
class=
"next"
><a
href=
"#"
>
${_("Next")}
</a></li>
<li
class=
"prev"
><a
role=
"button"
href=
"#"
>
${_("Previous")}
</a></li>
<li
class=
"next"
><a
role=
"button"
href=
"#"
>
${_("Next")}
</a></li>
</ul>
</nav>
</div>
...
...
lms/templates/vert_module.html
View file @
70b602fb
<div
class=
"vert-mod"
>
% for idx, item in enumerate(items):
<div
id=
"
vert-${idx}"
data-id=
"${item['id']}"
>
<div
class=
"vert
vert-${idx}"
data-id=
"${item['id']}"
>
${item['content']}
</div>
% endfor
...
...
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