Tizen-winset: Support accessibility for tizen-winset
authorWonseop Kim <wonseop.kim@samsung.com>
Thu, 21 Mar 2013 07:23:16 +0000 (16:23 +0900)
committerYoumin Ha <youmin.ha@samsung.com>
Fri, 22 Mar 2013 11:27:08 +0000 (20:27 +0900)
Change-Id: I33461c7b07604331274fad54197f406ea3bd42f7

Conflicts:

src/js/widgets/jquery.mobile.tizen.fastscroll.js
src/js/widgets/jquery.mobile.tizen.tokentextarea.js

23 files changed:
demos/tizen-winsets/widgets/list/list-collapsible.html
demos/tizen-winsets/widgets/list/list-dialogue.html
demos/tizen-winsets/widgets/list/list-normal_anchor.html
demos/tizen-winsets/widgets/list/list-normal_no_anchor.html
demos/tizen-winsets/widgets/list/list-radio.html
demos/tizen-winsets/widgets/list/virtuallist-normal_3_1_14.html
demos/tizen-winsets/widgets/list/virtuallist-normal_3_2_7.html
demos/tizen-winsets/widgets/naviframe/naviframe_footer_more_button.html
demos/tizen-winsets/widgets/naviframe/naviframe_title_text_2_btn.html
demos/tizen-winsets/widgets/naviframe/naviframe_title_text_multiline_src_2_btn.html
libs/patch/0032-JQM-Support-accessibility-for-button.patch [new file with mode: 0644]
libs/patch/0033-JQM-Support-accessibility-for-page.patch [new file with mode: 0644]
libs/patch/0034-JQM-Support-accessibility-for-page-section.patch [new file with mode: 0644]
libs/patch/0035-JQM-Support-accessibility-for-textinput.patch [new file with mode: 0644]
libs/patch/0036-jQM-Support-accessibility-for-collapsible.patch [new file with mode: 0644]
libs/patch/0037-JQM-Support-accessibility-for-checkboxradio.patch [new file with mode: 0644]
libs/patch/0038-JQM-Support-accessibility-for-listview.patch [new file with mode: 0644]
src/js/widgets/jquery.mobile.tizen.fastscroll.js
src/js/widgets/jquery.mobile.tizen.scrollview.handler.js
src/js/widgets/jquery.mobile.tizen.tokentextarea.js
src/js/widgets/jquery.mobile.tizen.virtualgrid.js
src/themes/tizen/common/jquery.mobile.button.less
src/themes/tizen/common/jquery.mobile.theme.less

index 6b99e37..8b0ba8a 100644 (file)
@@ -42,7 +42,7 @@
                                <span class="ui-li-text-main">2line-colorbar3</span>
                                <span class="ui-li-text-sub">Subtext</span>
 <!--                           <div data-role="button" data-inline="true" data-icon="call" data-style="circle"></div> -->
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                        </li>
                </ul>
                </form>
index 92588a9..2c9c43d 100644 (file)
                        </li>
                        <li class="ui-li-dialogue">
                                1line-bigicon1
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                        </li>
                        <li class="ui-li-dialogue">
                                1line-bigicon2
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                <span class="ui-li-text-sub">Sub text</span>
                        </li>
                        <li class="ui-li-dialogue">
                                1line-bigicon4
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                <div data-role="button" data-inline="true">Button</div>
                        </li>
                        <li class="ui-li-dialogue">
                                1line-bigicon5
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                <div data-role="button" data-inline="true" data-icon="plus" data-style="circle"></div>
                        </li>
                        <li class="ui-li-dialogue">
                                1line-bigicon6
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                <select name="flip-11" id="flip-11" data-role="slider">
                                        <option value="off"></option>
                                        <option value="on"></option>
                        <li class="ui-li-dialogue ui-li-text-ellipsis">
                                <a>
                                        1line-bigicon1 (with link)
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                </a>
                        </li>
                        <li class="ui-li-dialogue ui-li-text-ellipsis">
                                <a>
                                        1line-bigicon2
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        <span class="ui-li-text-sub">Sub text</span>
                                </a>
                        </li>
                        <li class="ui-li-dialogue ui-li-text-ellipsis">
                                <a>
                                        1line-bigicon4 (with link)
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        <div data-role="button" data-inline="true">Button</div>
                                </a>
                        </li>
                        <li class="ui-li-dialogue ui-li-text-ellipsis">
                                <a>
                                        1line-bigicon5 (with link)
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        <div data-role="button" data-inline="true" data-icon="plus" data-style="circle"></div>
                                </a>
                        </li>
                        <li class="ui-li-dialogue ui-li-text-ellipsis">
                                <a>
                                        1line-bigicon5 (with link)
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        <select name="flip-11" id="flip-11" data-role="slider">
                                                <option value="off"></option>
                                                <option value="on"></option>
index 8c872dc..abb7dc8 100644 (file)
 
                        <li>
                                <a href="#">
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        1line-bigicon1
                                </a>
                        </li>
 
                        <li>
                                <a href="#">
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        1line-bigicon2
                                        <span class="ui-li-text-sub">Sub text</span>
                                </a>
@@ -60,7 +60,7 @@
 
                        <li>
                                <a href="#">
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        1line-bigicon4
                                        <div data-role="button" data-inline="true">Text Button</div>
                                </a>
@@ -68,7 +68,7 @@
 
                        <li>
                                <a href="#">
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        1line-bigicon5
                                        <div data-role="button" data-inline="true" data-icon="plus" data-style="circle"></div>
                                </a>
@@ -76,7 +76,7 @@
 
                        <li>
                                <a href="#">
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        1line-bigicon6
                                        <select name="flip-11" id="flip-11" data-role="slider">
                                                <option value="off"></option>
                        <li class="ui-li-has-checkbox">
                                <a href="#">
                                        <input type="checkbox"  name="c1line-check3" />
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon" >
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        1line-check3
                                </a>
                        </li>
                        <li class="ui-li-has-checkbox">
                                <a href="#">
                                        <input type="checkbox"  name="c1line-check4" />
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        1line-check4
                                        <div data-role="button" data-inline="true" data-icon="plus" data-style="circle"></div>
                                </a>
                        <li class="ui-li-has-radio">
                                <a href="#">
                                        <input type="radio" name="1line-radio" />
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        1line-radio4
                                </a>
                        </li>
                                <a href="#">
                                        <input type="radio" name="1line-radio" />
                                        1line-radio5
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        <div data-role="button" data-inline="true" data-icon="plus" data-style="circle"></div>
                                </a>
                        </li>
                                <a href="#">
                                        <input type="radio" name="1line-radio" />
                                        1line-radio6
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                </a>
                        </li>
 
                                <a href="#">
                                        2line-star1
                                        <span class="ui-li-text-sub">Subtext</span>
-                                       <span style="position:absolute; right:16px; top:80px"><img class= "ui-li-icon-sub-right" src="00_winset_icon_favorite_on.png"></span>
+                                       <span style="position:absolute; right:16px; top:80px"><img class= "ui-li-icon-sub-right" src="00_winset_icon_favorite_on.png" alt="favorite"></span>
                                        <span class="ui-li-text-sub2">Subtext2</span>
                                </a>
                        </li>
                        <li class="ui-li-has-multiline">
                                <a href="#">
                                        2line-star2
-                                       <span class="ui-li-text-sub"><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png">Subtext</span>
-                                       <span><img class="ui-li-icon-sub-right" src="00_winset_icon_favorite_on.png"></span>
+                                       <span class="ui-li-text-sub"><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png" alt="favorite">Subtext</span>
+                                       <span><img class="ui-li-icon-sub-right" src="00_winset_icon_favorite_on.png" alt="favorite"></span>
                                </a>
                        </li>
 
                        <li class="ui-li-has-multiline">
                                <a href="#">
                                        2line-bigicon0
-                                       <span class="ui-li-text-sub">Subtext<img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png"></span>
+                                       <span class="ui-li-text-sub">Subtext<img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png" alt="favorite"></span>
                                        <div data-role="button" data-inline="true" data-icon="call" data-style="circle"></div>
                                </a>
                        </li>
 
                        <li class="ui-li-has-multiline">
                                <a href="#">
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        2line-bigicon1
                                        <span class="ui-li-text-sub">Subtext</span>
                                </a>
 
                        <li class="ui-li-has-multiline">
                                <a href="#">
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        2line-bigicon2
                                        <span class="ui-li-text-sub">Subtext</span>
                                        <span class="ui-li-text-sub2">Subtext2</span>
 
                        <li class="ui-li-has-multiline">
                                <a href="#">
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        2line-bigicon3
                                        <span class="ui-li-text-sub">Subtext</span>
                                </a>
 
                        <li class="ui-li-has-multiline">
                                <a href="#">
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        2line-bigicon4
                                        <span class="ui-li-text-sub">Subtext</span>
                                        <div data-role="button" data-inline="true" data-icon="call" data-style="circle"></div>
                        <li class="ui-li-has-checkbox ui-li-has-multiline">
                                <a href="#">
                                        <input type="checkbox"  name="c2line-check3" />
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        2line-check3
                                        <span class="ui-li-text-sub">Subtext</span>
                                </a>
                        <li class="ui-li-has-checkbox ui-li-has-multiline">
                                <a href="#">
                                        <input type="radio" name="2line-radio" />
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        2line-radio2
                                        <span class="ui-li-text-sub">Subtext</span>
                                </a>
                                        <span class="ui-li-color-bar"></span>
                                        2line-colorbar1
                                        <span class="ui-li-text-sub">Subtext
-                                               <img src="00_winset_icon_favorite_on.png">
-                                               <img src="00_winset_icon_favorite_on.png">
-                                               <img src="00_winset_icon_favorite_on.png">
+                                               <img src="00_winset_icon_favorite_on.png" alt="favorite">
+                                               <img src="00_winset_icon_favorite_on.png" alt="favorite">
+                                               <img src="00_winset_icon_favorite_on.png" alt="favorite">
                                        </span>
                                        <div data-role="button" data-inline="true">button</div>
                                </a>
                                <a href="#">
                                        <span class="ui-li-color-bar" style="background-color:rgba(72, 136, 42, 1);"></span>
                                        2line-colorbar2
-                                       <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png"></span>
+                                       <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png" alt="favorite"></span>
                                        <span class="ui-li-text-sub">Subtext</span>
                                        <div data-role="button" data-inline="true">button</div>
                                </a>
                                <a href="#">
                                        <span class="ui-li-color-bar" style="background-color:rgba(204, 52, 52, 1);"></span>
                                        2line-colorbar2
-                                       <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png"></span>
+                                       <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png" alt="favorite"></span>
                                        <span class="ui-li-text-sub">Subtext</span>
                                        <div data-role="button" data-inline="true" data-icon="call"></div>
                                </a>
                        <li class="ui-li-has-multiline">
                                <a href="#">
                                        <span class="ui-li-color-bar" style="background-color:rgba(72, 136, 42, 1);"></span>
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        2line-colorbar3
                                        <span class="ui-li-text-sub">Subtext</span>
                                        <div data-role="button" data-inline="true" data-icon="call" data-style="circle"></div>
 
                        <li class="ui-li-has-multiline">
                                <a href="#">
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        2line-bigicon8
                                        <span class="ui-li-text-sub">Subtext</span>
-                                       <img src="00_winset_icon_favorite_on.png" class="ui-li-icon-sub">
+                                       <img src="00_winset_icon_favorite_on.png" alt="favorite" class="ui-li-icon-sub">
                                </a>
                        </li>
 
                                <a href="#">
                                        2line-thumb1
                                        <span class="ui-li-text-sub">Subtext</span>
-                                       <img src="large_thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="large_thumbnail.jpg" alt="Photo ID" class="ui-li-bigicon">
                                </a>
                        </li>
 
                        <li class="ui-li-has-multiline">
                                <a href="#">
                                        2line-thumb2
-                                       <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png"></span>
-                                       <span class="ui-li-text-sub"><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png">Subtext</span>
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png" alt="favorite"></span>
+                                       <span class="ui-li-text-sub"><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png" alt="favorite">Subtext</span>
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                </a>
                        </li>
 
                                <a href="#">
                                        <span class="ui-li-text-sub">Subtext</span>
                                        2line-sub-main-bigicon1
-                                       <img src="large_thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="large_thumbnail.jpg" alt="Photo ID" class="ui-li-bigicon">
                                </a>
                        </li>
 
 
                        <li class="ui-li-has-multiline">
                                <a href="#">
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        Short Progress
                                        <div data-role="progressbar" id="progressbar"></div>
                                        <div data-role="button" data-inline="true">Stop</div>
                        <li class="ui-li-has-checkbox ui-li-has-multiline">
                                <a href="#">
                                        <input type="checkbox"  name="c2line-icon-bigicon-btn" />
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                        2line-3items
                                        <span class="ui-li-text-sub">Subtext</span>
                                        <div data-role="button" data-inline="true" data-icon="call" data-style="circle"></div>
                        <li class="ui-li-has-multiline">
                                <a href="#">
                                        2line-thumb3
-                                       <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png"></span>
+                                       <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png" alt="favorite"></span>
                                        <span class="ui-li-text-sub">Subtext</span>
-                                       <img src="thumbnail.jpg" class="ui-li-bigicon">
+                                       <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                </a>
                        </li>
                </ul>
index 5c70f36..203098e 100644 (file)
                        </li>
 
                        <li>
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                1line-bigicon1
                        </li>
 
                        <li>
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                1line-bigicon2
                                <span class="ui-li-text-sub">Sub text</span>
                        </li>
 
                        <li>
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                1line-bigicon4
                                <div data-role="button" data-inline="true">Text Button</div>
                        </li>
 
                        <li>
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                1line-bigicon5
                                <div data-role="button" data-inline="true" data-icon="plus" data-style="circle"></div>
                        </li>
 
                        <li>
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                1line-bigicon6
                                <select name="flip-11" id="flip-11" data-role="slider">
                                        <option value="off"></option>
 
                        <li class="ui-li-has-checkbox">
                                <input type="checkbox"  name="c1line-check3" />
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                1line-check3
                        </li>
 
                        <li class="ui-li-has-checkbox">
                                <input type="checkbox"  name="c1line-check4" />
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                1line-check4
                                <div data-role="button" data-inline="true" data-icon="plus" data-style="circle"></div>
                        </li>
 
                        <li class="ui-li-has-radio">
                                <input type="radio" name="1line-radio" />
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                1line-radio4
                        </li>
 
                        <li class="ui-li-has-radio">
                                <input type="radio" name="1line-radio" />
                                1line-radio5
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                <div data-role="button" data-inline="true" data-icon="plus" data-style="circle"></div>
                        </li>
 
                        <li class="ui-li-has-radio">
                                <input type="radio" name="1line-radio" />
                                1line-radio
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                        </li>
 
                        <li class="ui-li-has-multiline">
                        <li class="ui-li-has-multiline">
                                2line-star1
                                <span class="ui-li-text-sub">Subtext</span>
-                               <span style="position:absolute; right:16px; top:80px"><img class= "ui-li-icon-sub-right" src="00_winset_icon_favorite_on.png"></span>
+                               <span style="position:absolute; right:16px; top:80px"><img class= "ui-li-icon-sub-right" src="00_winset_icon_favorite_on.png" alt="favorite"></span>
                                <span class="ui-li-text-sub2">Subtext2</span>
                        </li>
 
                        <li class="ui-li-has-multiline">
                                2line-star2
-                               <span class="ui-li-text-sub"><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png">Subtext</span>
-                               <span><img class="ui-li-icon-sub-right" src="00_winset_icon_favorite_on.png"></span>
+                               <span class="ui-li-text-sub"><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png" alt="favorite">Subtext</span>
+                               <span><img class="ui-li-icon-sub-right" src="00_winset_icon_favorite_on.png" alt="favorite"></span>
                        </li>
 
                        <li class="ui-li-has-multiline">
 
                        <li class="ui-li-has-multiline">
                                2line-bigicon0
-                               <span class="ui-li-text-sub">Subtext<img src="00_winset_icon_favorite_on.png"></span>
+                               <span class="ui-li-text-sub">Subtext<img src="00_winset_icon_favorite_on.png" alt="favorite"></span>
                                <div data-role="button" data-inline="true" data-icon="call" data-style="circle"></div>
                        </li>
 
                        <li class="ui-li-has-multiline">
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                2line-bigicon1
                                <span class="ui-li-text-sub">Subtext</span>
                        </li>
 
                        <li class="ui-li-has-multiline">
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                2line-bigicon2
                                <span class="ui-li-text-sub">Subtext</span>
                                <span class="ui-li-text-sub2">Subtext2</span>
                        </li>
 
                        <li class="ui-li-has-multiline">
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                2line-bigicon3
                                <span class="ui-li-text-sub">Subtext</span>
                        </li>
 
                        <li class="ui-li-has-multiline">
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                2line-bigicon4
                                <span class="ui-li-text-sub">Subtext</span>
                                <div data-role="button" data-inline="true" data-icon="call" data-style="circle"></div>
 
                        <li class="ui-li-has-checkbox ui-li-has-multiline">
                                <input type="checkbox"  name="c2line-check3" />
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                2line-check3
                                <span class="ui-li-text-sub">Subtext</span>
                        </li>
 
                        <li class="ui-li-has-radio ui-li-has-multiline">
                                <input type="radio" name="2line-radio" />
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                2line-radio2
                                <span class="ui-li-text-sub">Subtext</span>
                        </li>
                                <span class="ui-li-color-bar"></span>
                                2line-colorbar1
                                <span class="ui-li-text-sub">Subtext
-                                       <img src="00_winset_icon_favorite_on.png">
-                                       <img src="00_winset_icon_favorite_on.png">
-                                       <img src="00_winset_icon_favorite_on.png">
+                                       <img src="00_winset_icon_favorite_on.png" alt="favorite">
+                                       <img src="00_winset_icon_favorite_on.png" alt="favorite">
+                                       <img src="00_winset_icon_favorite_on.png" alt="favorite">
                                </span>
                                <div data-role="button" data-inline="true">button</div>
                        </li>
                        <li class="ui-li-has-multiline">
                                <span class="ui-li-color-bar" style="background-color:rgba(72, 136, 42, 1);"></span>
                                2line-colorbar2
-                               <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png"></span>
+                               <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png" alt="favorite"></span>
                                <span class="ui-li-text-sub">Subtext</span>
                                <div data-role="button" data-inline="true">button</div>
                        </li>
                        <li class="ui-li-has-multiline">
                                <span class="ui-li-color-bar" style="background-color:rgba(204, 52, 52, 1);"></span>
                                2line-colorbar2
-                               <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png"></span>
+                               <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png" alt="favorite"></span>
                                <span class="ui-li-text-sub">Subtext</span>
                                <div data-role="button" data-inline="true" data-icon="call"></div>
                        </li>
 
                        <li class="ui-li-has-multiline">
                                <span class="ui-li-color-bar" style="background-color:rgba(72, 136, 42, 1);"></span>
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                2line-colorbar3
                                <span class="ui-li-text-sub">Subtext</span>
                                <div data-role="button" data-inline="true" data-icon="call" data-style="circle"></div>
                        </li>
 
                        <li class="ui-li-has-multiline">
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                2line-bigicon8
                                <span class="ui-li-text-sub">Subtext</span>
-                               <img src="00_winset_icon_favorite_on.png" class="ui-li-icon-sub">
+                               <img src="00_winset_icon_favorite_on.png" alt="favorite" class="ui-li-icon-sub">
                        </li>
 
                        <li class="ui-li-has-multiline ui-li-thumbnail-right">
                                2line-thumb1
                                <span class="ui-li-text-sub">Subtext</span>
-                               <img src="large_thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="large_thumbnail.jpg" alt="Photo ID" class="ui-li-bigicon">
                        </li>
 
                        <li class="ui-li-has-multiline ui-li-thumbnail-right">
                                2line-thumb2
-                               <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png"></span>
-                               <span class="ui-li-text-sub"><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png">Subtext</span>
-                               <img src="large_thumbnail.jpg" class="ui-li-bigicon">
+                               <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png" alt="favorite"></span>
+                               <span class="ui-li-text-sub"><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png" alt="favorite">Subtext</span>
+                               <img src="large_thumbnail.jpg" alt="Photo ID" class="ui-li-bigicon">
                        </li>
 
                        <li class="ui-li-has-multiline ui-li-thumbnail-right">
                                <span class="ui-li-text-sub">Subtext</span>
                                2line-sub-main-bigicon1
-                               <img src="large_thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="large_thumbnail.jpg" alt="Photo ID" class="ui-li-bigicon">
                        </li>
 
                        <li class="ui-li-has-multiline">
                        </li>
 
                        <li class="ui-li-has-multiline">
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                Short Progress
                                <div data-role="progressbar" id="progressbar"></div>
                                <div data-role="button" data-inline="true">Stop</div>
 
                        <li class="ui-li-has-checkbox ui-li-has-multiline">
                                <input type="checkbox"  name="c2line-icon-bigicon-btn" />
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                2line-3items
                                <span class="ui-li-text-sub">Subtext</span>
                                <div data-role="button" data-inline="true" data-icon="call" data-style="circle"></div>
 
                        <li class="ui-li-has-multiline">
                                2line-thumb3
-                               <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png"></span>
+                               <span><img class="ui-li-icon-sub" src="00_winset_icon_favorite_on.png" alt="favorite"></span>
                                <span class="ui-li-text-sub">Subtext</span>
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                        </li>
                </ul>
                </form>
index 1c2ae72..3a47291 100644 (file)
@@ -27,7 +27,7 @@
                        </li>
                        <li class="ui-li-has-radio">
                                <input type="radio" name="radio-choice-1" id="radio-choice-5" value="choice-5"/>
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                                Radio Item 5
                        </li>
                        <li class="ui-li-has-radio">
@@ -50,7 +50,7 @@
                        <li class="ui-li-has-radio">
                                <input type="radio" name="radio-choice-1" id="radio-choice-10" value="choice-10"/>
                                Radio Item 10
-                               <img src="thumbnail.jpg" class="ui-li-bigicon">
+                               <img src="thumbnail.jpg" alt="icon" class="ui-li-bigicon">
                        </li>
                </ul>
        </form>
index dc5c5a1..cd3f127 100644 (file)
@@ -16,7 +16,7 @@
        <div data-role="content">
                <script id="tmp-1line-bigicon5" type="text/x-jquery-tmpl">
                        <li class="ui-li-1line-bigicon5">
-                               <img src=${TEAM_LOGO} class="ui-li-bigicon">
+                               <img src=${TEAM_LOGO} alt="icon" class="ui-li-bigicon">
                                <span class="ui-li-text-main">${NAME}</span>
                                <div data-role="button" data-inline="true" data-icon="plus" data-style="circle"></div>
                        </li>
index aca25c7..db3a956 100644 (file)
@@ -24,7 +24,7 @@
                        <li class="ui-li-has-multiline">
                                <span class="ui-li-text-main">${NAME}</span>
                                <span class="ui-li-text-sub">${ACTIVE}
-                                       <img src="00_winset_icon_favorite_on.png" class="ui-li-icon-sub">
+                                       <img src="00_winset_icon_favorite_on.png" alt="favorite" class="ui-li-icon-sub">
                                </span>
                                <span class="ui-li-text-sub2">${FROM}</span>
                        </li>
index f02a0ec..e9540de 100644 (file)
                <p>Footer more sample</p>
        </div>
        <div data-role="footer">
-               <a href="#pop_js" data-role="button"  data-icon="naviframe-more" data-transition="slidedownfade" data-rel="popup"></a>
-
                <div data-role="button" data-inline="true" data-style="round">Button1</div>
                <div data-role="button" data-inline="true" data-style="round">Button2</div>
 
+               <a href="#pop_js" data-role="button"  data-icon="naviframe-more" data-transition="slidedownfade" data-rel="popup"></a>
+
                <div id="pop_js" data-role="popup" >
                <ul data-role="listview">
                        <li><a href="#" data-rel="back">Settings</a></li>
index c9e1785..864a99e 100644 (file)
@@ -20,8 +20,8 @@
        <div data-role="page" data-add-back-btn="true">
                <div data-role="header" data-position="fixed">
                        <h1>Title 2 Buttons </h1>
-                       <a data-icon="naviframe-edit"></a>
                        <a data-icon="naviframe-cancel"></a>
+                       <a data-icon="naviframe-edit"></a>
                </div>
                <div data-role="content">
                                <p>Title text Button 02 sample</p>
index 470af06..400e71c 100644 (file)
@@ -23,8 +23,8 @@
                        <img src="icon-tizen.png"/>
                        <h1>Title demo</h1>
                        <span class="ui-title-text-sub">Title image multiline 2 Buttons</span>
-                       <a data-icon="naviframe-more"></a>
                        <a data-icon="naviframe-edit"></a>
+                       <a data-icon="naviframe-more"></a>
                </div>
                <div data-role="content">
                        <p>Image Title text Multiline Button 02 sample</p>
diff --git a/libs/patch/0032-JQM-Support-accessibility-for-button.patch b/libs/patch/0032-JQM-Support-accessibility-for-button.patch
new file mode 100644 (file)
index 0000000..89d0cef
--- /dev/null
@@ -0,0 +1,39 @@
+From 79d7d678ec75404aa8a927ec337d8563ed26e9fc Mon Sep 17 00:00:00 2001
+From: Wonseop Kim <wonseop.kim@samsung.com>
+Date: Sat, 16 Mar 2013 17:26:01 +0900
+Subject: [PATCH] JQM: Support accessibility for button
+
+---
+ .../js/jquery.mobile.buttonMarkup.js               |    9 +++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/libs/js/jquery-mobile-1.2.0/js/jquery.mobile.buttonMarkup.js b/libs/js/jquery-mobile-1.2.0/js/jquery.mobile.buttonMarkup.js
+index 7c17ba6..cd8e39d 100644
+--- a/libs/js/jquery-mobile-1.2.0/js/jquery.mobile.buttonMarkup.js
++++ b/libs/js/jquery-mobile-1.2.0/js/jquery.mobile.buttonMarkup.js
+@@ -52,6 +52,11 @@ $.fn.buttonMarkup = function( options ) {
+                       e.setAttribute( "aria-owns", e.getAttribute( "href" ) );
+               }
++              if ( e.tagName !== "LI" && e.tagName !== "LABEL" ) {
++                      e.setAttribute( "role", "button" );
++                      e.setAttribute( "tabindex", "0" );
++              }
++
+               // Check if this element is already enhanced
+               buttonElements = $.data( ( ( e.tagName === "INPUT" || e.tagName === "BUTTON" ) ? e.parentNode : e ), "buttonElements" );
+@@ -131,6 +136,10 @@ $.fn.buttonMarkup = function( options ) {
+                               buttonClass += " ui-btn-icon_only";
+                               innerClass += " ui-btn-icon-only";
++
++                              if ( e.tagName !== "LABEL" ) {
++                                      $( el ).text( o.icon.replace( "naviframe-", "" ) );
++                              }
+                       }
+               } else {
+                       if ( $(el).text().length > 0 ) {
+-- 
+1.7.9.5
+
diff --git a/libs/patch/0033-JQM-Support-accessibility-for-page.patch b/libs/patch/0033-JQM-Support-accessibility-for-page.patch
new file mode 100644 (file)
index 0000000..05e5224
--- /dev/null
@@ -0,0 +1,24 @@
+From 599c0b39fc2cbbc5977f3b489e8f4c5a739a8c96 Mon Sep 17 00:00:00 2001
+From: Wonseop Kim <wonseop.kim@samsung.com>
+Date: Sat, 16 Mar 2013 17:39:55 +0900
+Subject: [PATCH] JQM: Support accessibility for page
+
+---
+ libs/js/jquery-mobile-1.2.0/js/widgets/page.js |    1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/libs/js/jquery-mobile-1.2.0/js/widgets/page.js b/libs/js/jquery-mobile-1.2.0/js/widgets/page.js
+index 4e67469..55701bc 100644
+--- a/libs/js/jquery-mobile-1.2.0/js/widgets/page.js
++++ b/libs/js/jquery-mobile-1.2.0/js/widgets/page.js
+@@ -24,7 +24,6 @@ $.widget( "mobile.page", $.mobile.widget, {
+               }
+               self.element
+-                      .attr( "tabindex", "0" )
+                       .addClass( "ui-page ui-body-" + self.options.theme )
+                       .bind( "pagebeforehide", function() {
+                               self.removeContainerBackground();
+-- 
+1.7.9.5
+
diff --git a/libs/patch/0034-JQM-Support-accessibility-for-page-section.patch b/libs/patch/0034-JQM-Support-accessibility-for-page-section.patch
new file mode 100644 (file)
index 0000000..8ed35e3
--- /dev/null
@@ -0,0 +1,61 @@
+From 6a2454411d5416ec39c53c5fb9532ca68363d504 Mon Sep 17 00:00:00 2001
+From: Wonseop Kim <wonseop.kim@samsung.com>
+Date: Wed, 20 Mar 2013 20:44:35 +0900
+Subject: [PATCH] JQM: Support accessibility for page-section
+
+---
+ .../js/widgets/page.sections.js                    |   21 ++++++++++++++------
+ 1 file changed, 15 insertions(+), 6 deletions(-)
+
+diff --git a/libs/js/jquery-mobile-1.2.0/js/widgets/page.sections.js b/libs/js/jquery-mobile-1.2.0/js/widgets/page.sections.js
+index e00684c..1a7b373 100644
+--- a/libs/js/jquery-mobile-1.2.0/js/widgets/page.sections.js
++++ b/libs/js/jquery-mobile-1.2.0/js/widgets/page.sections.js
+@@ -61,6 +61,10 @@ $.mobile.$document.bind( "pagecreate", function( e ) {
+                               leftbtn = leftbtn || $headeranchors.eq( 0 ).not( ".ui-btn-right" ).addClass( "ui-btn-left" ).length;
+                               rightbtn = rightbtn || $headeranchors.eq( 1 ).addClass( "ui-btn-right" ).length;
++
++                              $( $headeranchors.get().reverse() ).each( function ( i ) {
++                                      $( this ).addClass( "ui-btn-right-" + i );
++                              });
+                       }
+                       // Auto-add back btn on pages beyond first view
+@@ -75,12 +79,13 @@ $.mobile.$document.bind( "pagecreate", function( e ) {
+                                       $dest = $page.find( ".ui-footer" );
+                               }
+-                              backBtn = $( "<a href='javascript:void(0);' class='ui-btn-back' data-"+ $.mobile.ns +"rel='back' data-"+ $.mobile.ns +"icon='header-back-btn'></a>" )
+-                                      // If theme is provided, override default inheritance
+-                                      .attr( "data-"+ $.mobile.ns +"theme", o.backBtnTheme || thisTheme );
+-
+                               if ( !$dest.find( ".ui-btn-back" ).length ) {
+-                                      backBtn.prependTo( $dest );
++                                      backBtn = $( "<a href='javascript:void(0);' class='ui-btn-back' data-" + $.mobile.ns + "rel='back'></a>" )
++                                              // // If theme is provided, override default inheritance
++                                              .buttonMarkup( { icon: "header-back-btn", theme: o.backBtnTheme || thisTheme } );
++
++                                      backBtn.find( ".ui-btn-text" ).text( o.backBtnText );
++                                      backBtn.appendTo( $dest );
+                               }
+                       }
+@@ -90,9 +94,13 @@ $.mobile.$document.bind( "pagecreate", function( e ) {
+                               // Regardless of h element number in src, it becomes h1 for the enhanced page
+                               .attr({
+                                       "role": "heading",
+-                                      "aria-level": "1"
++                                      "aria-level": "1",
++                                      "aria-label": "title",
++                                      "tabindex": "0"
+                               });
++                      $( ".ui-title-text-sub" ).attr( { "tabindex": "0", "aria-label": "subtitle" } );
++
+               } else if ( role === "content" ) {
+                       if ( contentTheme ) {
+                               $this.addClass( "ui-body-" + ( contentTheme ) );
+-- 
+1.7.9.5
+
diff --git a/libs/patch/0035-JQM-Support-accessibility-for-textinput.patch b/libs/patch/0035-JQM-Support-accessibility-for-textinput.patch
new file mode 100644 (file)
index 0000000..cec9bff
--- /dev/null
@@ -0,0 +1,38 @@
+From 3aef45a3d030e7e723a30b30b901f6c22e7eeadb Mon Sep 17 00:00:00 2001
+From: Minkyeong Kim <minkyeong.kim@samsung.com>
+Date: Tue, 19 Mar 2013 10:46:43 +0900
+Subject: [PATCH] JQM Support accessibility for textinput
+
+---
+ .../js/widgets/forms/textinput.js                  |   15 +++++++++++++++
+ 1 files changed, 15 insertions(+), 0 deletions(-)
+
+diff --git a/libs/js/jquery-mobile-1.2.0/js/widgets/forms/textinput.js b/libs/js/jquery-mobile-1.2.0/js/widgets/forms/textinput.js
+index 05b1b03..8f939b1 100644
+--- a/libs/js/jquery-mobile-1.2.0/js/widgets/forms/textinput.js
++++ b/libs/js/jquery-mobile-1.2.0/js/widgets/forms/textinput.js
+@@ -39,6 +39,21 @@ $.widget( "mobile.textinput", $.mobile.widget, {
+               focusedEl = input.addClass("ui-input-text ui-body-"+ theme );
++              switch ( input.attr( "type" ) ) {
++                      case "text":
++                      case "password":
++                      case "number":
++                      case "email":
++                      case "url":
++                      case "tel":
++                              input.attr( { "role" : "textbox", "aria-label" : "Keyboard opened" } );
++                              break;
++                      default:
++                              if ( input.prop( "tagName" ).toLowerCase() === "textarea" ) {
++                                      input.attr( { "role" : "textbox", "aria-label" : "Keyboard opened" } );
++                              }
++              }
++
+               // XXX: Temporary workaround for issue 785 (Apple bug 8910589).
+               //      Turn off autocorrect and autocomplete on non-iOS 5 devices
+               //      since the popup they use can't be dismissed by the user. Note
+-- 
+1.7.5.4
+
diff --git a/libs/patch/0036-jQM-Support-accessibility-for-collapsible.patch b/libs/patch/0036-jQM-Support-accessibility-for-collapsible.patch
new file mode 100644 (file)
index 0000000..5b3632b
--- /dev/null
@@ -0,0 +1,46 @@
+From 61d133a822b45b01bb31985c8b8142457d17b5c7 Mon Sep 17 00:00:00 2001
+From: Woosung Sohn <woosungim.sohn@samsung.com>
+Date: Tue, 19 Mar 2013 15:20:13 +0900
+Subject: [PATCH] JQM Support accessibility for collapsible
+
+Change-Id: Iaa49fa1ff977230320daf9380dfe6ec3cbb72080
+---
+ .../jquery-mobile-1.2.0/js/widgets/collapsible.js  |    8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/libs/js/jquery-mobile-1.2.0/js/widgets/collapsible.js b/libs/js/jquery-mobile-1.2.0/js/widgets/collapsible.js
+index 26dbb61..8398de4 100644
+--- a/libs/js/jquery-mobile-1.2.0/js/widgets/collapsible.js
++++ b/libs/js/jquery-mobile-1.2.0/js/widgets/collapsible.js
+@@ -11,8 +11,8 @@ define( [ "jquery", "../jquery.mobile.widget", "../jquery.mobile.buttonMarkup" ]
+ $.widget( "mobile.collapsible", $.mobile.widget, {
+       options: {
+-              expandCueText: " click to expand contents",
+-              collapseCueText: " click to collapse contents",
++              expandCueText: " Expandable list, tap to open list",
++              collapseCueText: " Expandable list, tap to close list",
+               collapsed: true,
+               heading: "h1,h2,h3,h4,h5,h6,legend",
+               theme: null,
+@@ -103,7 +103,8 @@ $.widget( "mobile.collapsible", $.mobile.widget, {
+                                       icon: collapsedIcon,
+                                       mini: o.mini,
+                                       theme: o.theme
+-                              });
++                              })
++                              .attr( "role", "");
+               if ( !!o.inset ) {                              
+                       collapsibleHeading
+@@ -138,6 +139,7 @@ $.widget( "mobile.collapsible", $.mobile.widget, {
+                                       $this.toggleClass( "ui-collapsible-collapsed", isCollapse );
+                                       collapsibleContent.toggleClass( "ui-collapsible-content-collapsed", isCollapse ).attr( "aria-hidden", isCollapse );
++                                      collapsibleContent.children( "li" ).not( "ui-collapsible-content" ).attr( "tabindex", isCollapse ? "" : "0" );
+                                       if ( contentTheme && !!o.inset && ( !collapsibleSet.length || collapsible.jqmData( "collapsible-last" ) ) ) {
+                                               collapsibleHeading
+-- 
+1.7.9.5
+
diff --git a/libs/patch/0037-JQM-Support-accessibility-for-checkboxradio.patch b/libs/patch/0037-JQM-Support-accessibility-for-checkboxradio.patch
new file mode 100644 (file)
index 0000000..a51a16c
--- /dev/null
@@ -0,0 +1,69 @@
+From 15c488ed418fa5c8b5ae562427682f3a4e3bed8c Mon Sep 17 00:00:00 2001
+From: "sang-hee.lee" <sang-hee.lee@samsung.com>
+Date: Tue, 19 Mar 2013 20:05:24 +0900
+Subject: [PATCH] JQM Support accessibility for checkboxradio
+
+---
+ .../js/widgets/forms/checkboxradio.js              |   12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/libs/js/jquery-mobile-1.2.0/js/widgets/forms/checkboxradio.js b/libs/js/jquery-mobile-1.2.0/js/widgets/forms/checkboxradio.js
+index a9f8f31..aa6f8a2 100644
+--- a/libs/js/jquery-mobile-1.2.0/js/widgets/forms/checkboxradio.js
++++ b/libs/js/jquery-mobile-1.2.0/js/widgets/forms/checkboxradio.js
+@@ -38,12 +38,15 @@ $.widget( "mobile.checkboxradio", $.mobile.widget, {
+                       checkedClass = "ui-" + checkedState + activeBtn,
+                       uncheckedClass = "ui-" + uncheckedState,
+                       checkedicon = "ui-icon-" + checkedState,
+-                      uncheckedicon = "ui-icon-" + uncheckedState;
++                      uncheckedicon = "ui-icon-" + uncheckedState,
++                      ariaCheckedAttr = "";
+               if ( inputtype !== "checkbox" && inputtype !== "radio" ) {
+                       return;
+               }
++              ariaCheckedAttr = ( inputtype === "checkbox" ) ? "aria-checked" : "aria-selected";
++
+               // Support fake label
+               if ( label.length == 0 ) {
+                       label = $( "<label for='" + input[ 0 ].id  +
+@@ -57,7 +60,8 @@ $.widget( "mobile.checkboxradio", $.mobile.widget, {
+                       checkedClass: checkedClass,
+                       uncheckedClass: uncheckedClass,
+                       checkedicon: checkedicon,
+-                      uncheckedicon: uncheckedicon
++                      uncheckedicon: uncheckedicon,
++                      ariaCheckedAttr : ariaCheckedAttr
+               });
+               // If there's no selected theme check the data attr
+@@ -76,6 +80,7 @@ $.widget( "mobile.checkboxradio", $.mobile.widget, {
+               // Wrap the input + label in a div
+               var wrapper = document.createElement('div');
+               wrapper.className = 'ui-' + inputtype;
++              wrapper.setAttribute( "role", inputtype );
+               if ( input.hasClass( "favorite" ) ) {
+                       wrapper.className += ' favorite';
+@@ -184,14 +189,17 @@ $.widget( "mobile.checkboxradio", $.mobile.widget, {
+       refresh: function() {
+               var input = this.element[0],
+                       label = this.label,
++                      wrapper = input.parentNode,
+                       icon = label.find( ".ui-icon" );
+               if ( input.checked ) {
+                       label.addClass( this.checkedClass ).removeClass( this.uncheckedClass );
+                       icon.addClass( this.checkedicon ).removeClass( this.uncheckedicon );
++                      wrapper.setAttribute( this.ariaCheckedAttr, true );
+               } else {
+                       label.removeClass( this.checkedClass ).addClass( this.uncheckedClass );
+                       icon.removeClass( this.checkedicon ).addClass( this.uncheckedicon );
++                      wrapper.setAttribute( this.ariaCheckedAttr, false );
+               }
+               if ( input.disabled ) {
+-- 
+1.7.9.5
+
diff --git a/libs/patch/0038-JQM-Support-accessibility-for-listview.patch b/libs/patch/0038-JQM-Support-accessibility-for-listview.patch
new file mode 100644 (file)
index 0000000..f30b2f4
--- /dev/null
@@ -0,0 +1,73 @@
+From 2f68f0cd4b3e55d0e9cc08cb3e9b4b00a45c3674 Mon Sep 17 00:00:00 2001
+From: "sang-hee.lee" <sang-hee.lee@samsung.com>
+Date: Tue, 19 Mar 2013 21:58:18 +0900
+Subject: [PATCH] JQM Support accessibility for listview
+
+---
+ libs/js/jquery-mobile-1.2.0/js/widgets/listview.js |   27 +++++++++++++++++---
+ 1 file changed, 24 insertions(+), 3 deletions(-)
+
+diff --git a/libs/js/jquery-mobile-1.2.0/js/widgets/listview.js b/libs/js/jquery-mobile-1.2.0/js/widgets/listview.js
+index 993d03e..4d53d2c 100644
+--- a/libs/js/jquery-mobile-1.2.0/js/widgets/listview.js
++++ b/libs/js/jquery-mobile-1.2.0/js/widgets/listview.js
+@@ -147,7 +147,10 @@ $.widget( "mobile.listview", $.mobile.widget, {
+               for ( i = 0; i < len; i++ ) {
+                       img = $( this._findFirstElementByTagName( containers[ i ].firstChild, "nextSibling", "img", "IMG" ) );
+                       if ( img.length ) {
+-                              img.addClass( "ui-li-thumb" );
++                              img.addClass( "ui-li-thumb" ).attr( {
++                                      "role" : "",
++                                      "aria-label" : "icon"
++                              });
+                               $( this._findFirstElementByTagName( img[ 0 ].parentNode, "parentNode", "li", "LI" ) ).addClass( img.is( ".ui-li-icon" ) ? "ui-li-has-icon" : "ui-li-has-thumb" );
+                       }
+               }
+@@ -228,9 +231,26 @@ $.widget( "mobile.listview", $.mobile.widget, {
+                       // If we're creating the element, we update it regardless
+                       if ( create || !item.hasClass( "ui-li" ) ) {
+                               itemTheme = $.mobile.getAttrFixed( item[0], "data-" + $.mobile.ns + "theme" ) || o.theme;
+-                              a = this._getChildrenByTagName( item[ 0 ], "a", "A" );
++                              a = this._getChildrenByTagName( item[ 0 ], "a", "A" ).attr( {
++                                      "role": "",
++                                      "tabindex": "0"
++                              });
+                               var isDivider = ( $.mobile.getAttrFixed( item[0], "data-" + $.mobile.ns + "role" ) === "list-divider" );
++                              if ( item.hasClass( "ui-li-has-checkbox" ) || item.hasClass( "ui-li-has-radio" ) ) {
++                                      item.on( "vclick", function ( e ) {
++                                              var targetItem = $( e.target );
++                                              var checkboxradio = targetItem.find( ".ui-checkbox" );
++                                              if ( !checkboxradio.length ) {
++                                                      checkboxradio = targetItem.find( ".ui-radio" );
++                                              }
++
++                                              if ( checkboxradio.length ) {
++                                                      checkboxradio.children( "label" ).trigger( "vclick" );
++                                              }
++                                      });
++                              }
++
+                               if ( a.length && !isDivider ) {
+                                       icon = $.mobile.getAttrFixed( item[0], "data-" + $.mobile.ns + "icon" );
+@@ -287,7 +307,7 @@ $.widget( "mobile.listview", $.mobile.widget, {
+                               } else if ( isDivider ) {
+                                       itemClass += " ui-li-divider ui-bar-" + dividertheme;
+-                                      item.attr( "role", "heading" );
++                                      item.attr( { "role": "heading", "tabindex": "0" } );
+                                       if ( ol ) {     
+                                               //reset counter when a divider heading is encountered
+@@ -305,6 +325,7 @@ $.widget( "mobile.listview", $.mobile.widget, {
+                               
+                               } else {
+                                       itemClass += " ui-li-static ui-btn-up-" + itemTheme;
++                                      item.attr( "tabindex", "0" );
+                               }
+                       }
+-- 
+1.7.9.5
+
index 84e811c..f1e3db3 100644 (file)
@@ -111,8 +111,8 @@ define( [ '../jquery.mobile.tizen.scrollview' ], function ( ) {
                                jumpToDivider;
 
                        this.scrollview = $el.closest( '.ui-scrollview-clip' );
-                       this.shortcutsContainer = $( '<div class="ui-fastscroll"/>' );
-                       this.shortcutsList = $( '<ul></ul>' );
+                       this.shortcutsContainer = $( '<div class="ui-fastscroll" aria-label="Fast scroll bar, double tap to fast scroll mode" tabindex="0"/>' );
+                       this.shortcutsList = $( '<ul aria-hidden="true"></ul>' );
 
                        // popup for the hovering character
                        this.scrollview.append($( '<div class="ui-fastscroll-popup"></div>' ) );
@@ -127,7 +127,7 @@ define( [ '../jquery.mobile.tizen.scrollview' ], function ( ) {
                        // remove scrollbars from scrollview
                        this.scrollview.find( '.ui-scrollbar' ).hide();
 
-                       jumpToDivider = function ( divider ) {
+                       this.jumpToDivider = function ( divider ) {
                                // get the vertical position of the divider (so we can scroll to it)
                                var dividerY = $( divider ).position().top,
                                        // find the bottom of the last list item
@@ -154,7 +154,7 @@ define( [ '../jquery.mobile.tizen.scrollview' ], function ( ) {
 
                        this.shortcutsList
                        // bind mouse over so it moves the scroller to the divider
-                               .bind( 'touchstart mousedown vmousedown touchmove vmousemove vmouseover ', function ( e ) {
+                               .bind( 'touchstart mousedown vmousedown touchmove vmousemove vmouseover', function ( e ) {
                                        // Get coords relative to the element
                                        var coords = $.mobile.tizen.targetRelativeCoordsFromEvent( e ),
                                                shortcutsListOffset = self.shortcutsList.offset();
@@ -165,6 +165,11 @@ define( [ '../jquery.mobile.tizen.scrollview' ], function ( ) {
                                                coords.y += $( e.target ).offset().top  - shortcutsListOffset.top;
                                        }
 
+                                       if ( e.target.tagName.toLowerCase() === "span" ) {
+                                               coords.x += $( e.target ).parent().offset().left - shortcutsListOffset.left;
+                                               coords.y += $( e.target ).parent().offset().top  - shortcutsListOffset.top;
+                                       }
+
                                        self.shortcutsList.find( 'li' ).each( function () {
                                                var listItem = $( this );
                                                $( listItem )
@@ -181,29 +186,7 @@ define( [ '../jquery.mobile.tizen.scrollview' ], function ( ) {
                                                        b = t + Math.abs(listItem.outerHeight( true ) );
 
                                                if ( coords.x >= l && coords.x <= r && coords.y >= t && coords.y <= b ) {
-                                                       if ( typeof listItem.data( 'divider' ) !== "undefined" ) {
-                                                               jumpToDivider( $( listItem.data( 'divider' ) ) );
-                                                       }
-
-                                                       if ( listItem.text() !== "." ) {
-                                                               $popup.text( listItem.text() )
-                                                                       .css( { marginLeft: -( $popup.width() / 2 ),
-                                                                               marginTop: -( $popup.height() / 2 ),
-                                                                               padding: $popup.css( "paddingTop" ) } )
-                                                                       .width( $popup.height() )
-                                                                       .show();
-                                                       } else {
-                                                               $popup.hide();
-                                                       }
-
-                                                       $( listItem ).addClass( "ui-fastscroll-hover" );
-                                                       if ( listItem.index() === 0 ) {
-                                                               $( listItem ).addClass( "ui-fastscroll-hover-first-item" );
-                                                       }
-                                                       if ( listItem.index() > 0 ) {
-                                                               $( listItem ).siblings().eq( listItem.index() - 1 ).addClass( "ui-fastscroll-hover-up" );
-                                                       }
-                                                       $( listItem ).siblings().eq( listItem.index() ).addClass( "ui-fastscroll-hover-down" );
+                                                       self._hitItem( listItem );
                                                        return false;
                                                }
                                                return true;
@@ -237,7 +220,51 @@ define( [ '../jquery.mobile.tizen.scrollview' ], function ( ) {
                        } );
                },
 
-               _contentHeight : function () {
+               _hitItem: function ( listItem ) {
+                       var self = this,
+                               $popup = self.scrollview.find( '.ui-fastscroll-popup' );
+
+                       if ( typeof listItem.data( 'divider' ) !== "undefined" ) {
+                               self.jumpToDivider( $( listItem.data( 'divider' ) ) );
+                       }
+
+                       if ( listItem.text() !== "." ) {
+                               $popup.text( listItem.text() )
+                                       .css( { marginLeft: -( $popup.width() / 2 ),
+                                               marginTop: -( $popup.height() / 2 ),
+                                               padding: $popup.css( "paddingTop" ) } )
+                                       .width( $popup.height() )
+                                       .show();
+                       } else {
+                               $popup.hide();
+                       }
+
+                       $( listItem ).addClass( "ui-fastscroll-hover" );
+                       if ( listItem.index() === 0 ) {
+                               $( listItem ).addClass( "ui-fastscroll-hover-first-item" );
+                       }
+                       if ( listItem.index() > 0 ) {
+                               $( listItem ).siblings().eq( listItem.index() - 1 ).addClass( "ui-fastscroll-hover-up" );
+                       }
+                       $( listItem ).siblings().eq( listItem.index() ).addClass( "ui-fastscroll-hover-down" );
+               },
+
+               _focusItem: function ( listItem ) {
+                       var self = this,
+                               $popup = self.scrollview.find( '.ui-fastscroll-popup' );
+
+                       listItem.focusin( function ( e ) {
+                               self._hitItem( listItem );
+                       }).focusout( function ( e ) {
+                               $popup.hide();
+                               $( ".ui-fastscroll-hover" ).removeClass( "ui-fastscroll-hover" );
+                               $( ".ui-fastscroll-hover-first-item" ).removeClass( "ui-fastscroll-hover-first-item" );
+                               $( ".ui-fastscroll-hover-up" ).removeClass( "ui-fastscroll-hover-up" );
+                               $( ".ui-fastscroll-hover-down" ).removeClass( "ui-fastscroll-hover-down" );
+                       });
+               },
+
+               _contentHeight: function () {
                        var self = this,
                                $content = $( '.ui-scrollview-clip' ),
                                header = null,
@@ -329,7 +356,7 @@ define( [ '../jquery.mobile.tizen.scrollview' ], function ( ) {
                                primaryCharacterSet = self._primaryLanguage ? self._primaryLanguage.replace( /,/g, "" ) : null,
                                secondCharacterSet = self._secondLanguage ? self._secondLanguage.replace( /,/g, "" ) : null,
                                contentHeight = self._contentHeight(),
-                               shapItem = $( '<li>#</li>' ),
+                               shapItem = $( '<li tabindex="0" aria-label="double to move Number list"><span aria-hidden="true">#</span><span aria-label="Number"/></li>' ),
                                omitIndex = 0,
                                matchToDivider,
                                containerHeight,
@@ -355,7 +382,10 @@ define( [ '../jquery.mobile.tizen.scrollview' ], function ( ) {
 
                        matchToDivider = function ( index, divider ) {
                                if ( $( divider ).text() === indexChar ) {
-                                       shortcutItem.data( 'divider', divider );
+                                       shortcutItem.data( 'divider', divider )
+                                               .bind( 'vclick', function ( e ) {
+                                                       $( divider ).next().focus();
+                                               } );
                                }
                        };
 
@@ -379,6 +409,7 @@ define( [ '../jquery.mobile.tizen.scrollview' ], function ( ) {
                        self.shortcutsList.show();
                        self.lastListItem = listItems.last();
                        self.shortcutsList.append( shapItem );
+                       self._focusItem( shapItem );
 
                        if ( primaryCharacterSet !== null ) {
                                padding = parseInt( shapItem.css( "padding" ), 10 );
@@ -397,8 +428,9 @@ define( [ '../jquery.mobile.tizen.scrollview' ], function ( ) {
 
                                for ( i = 0; i < primaryCharacterSet.length; i++ ) {
                                        indexChar = primaryCharacterSet.charAt( i );
-                                       shortcutItem = $( '<li>' + indexChar + '</li>' );
+                                       shortcutItem = $( '<li tabindex="0" aria-label="double to move ' + indexChar + ' list">' + indexChar + '</li>' );
 
+                                       self._focusItem( shortcutItem );
                                        dividers.each( matchToDivider );
 
                                        if ( typeof omitInfo !== "undefined" && omitInfo[ omitIndex ] > 1 ) {
@@ -419,8 +451,9 @@ define( [ '../jquery.mobile.tizen.scrollview' ], function ( ) {
 
                                        for ( i = 0; i < seconds.length; i++ ) {
                                                indexChar = seconds[ i ];
-                                               shortcutItem = $( '<li>' + indexChar + '</li>' );
+                                               shortcutItem = $( '<li tabindex="0" aria-label="double to move ' + indexChar + ' list">' + indexChar + '</li>' );
 
+                                               self._focusItem( shortcutItem );
                                                dividers.each( matchToDivider );
 
                                                shapItem.before( shortcutItem );
@@ -428,8 +461,12 @@ define( [ '../jquery.mobile.tizen.scrollview' ], function ( ) {
                                }
                        } else {
                                dividers.each( function ( index, divider ) {
-                                       shapItem.before( $( '<li>' + $( divider ).text() + '</li>' )
-                                               .data( 'divider', divider ) );
+                                       indexChar = $( divider ).text();
+                                       shortcutItem = $( '<li tabindex="0" aria-label="double to move ' + indexChar + ' list">' + indexChar + '</li>' );
+
+                                       shortcutItem.data( 'divider', divider );
+                                       self._focusItem( shortcutItem );
+                                       shapItem.before( shortcutItem );
                                } );
                        }
 
index 644b6aa..b2b1352 100644 (file)
@@ -141,7 +141,10 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                        }
 
                        handler = $( [ prefix, direction, suffix ].join( "" ) ).appendTo( $view.addClass( " ui-handler-" + theme ) );
-                       handlerThumb = $view.find( ".ui-handler-thumb" ).hide();
+                       handlerThumb = $view.find( ".ui-handler-thumb" ).attr( {
+                               "tabindex" : "0",
+                               "aria-label" : ( isHorizontal ? "Horizontal handler, double tap and move to scroll" : "Verticalhandler, double tap and move to scroll" )
+                       }).hide();
                        handlerHeight = ( isHorizontal ? handlerThumb.width() : handlerThumb.height() );
                        handlerMargin = ( isHorizontal ? parseInt( handler.css( "right" ), 10 ) : parseInt( handler.css( "bottom" ), 10 ) );
 
index 0a91ef9..11970af 100755 (executable)
@@ -257,17 +257,17 @@ define( [ '../jquery.mobile.tizen.core' ], function ( ) {
                                option = this.options,
                                className = "ui-tokentextarea-link",
                                inputbox = $( document.createElement( "input" ) ),
-                               labeltag = $( document.createElement( "label" ) ),
+                               labeltag = $( document.createElement( "span" ) ),
                                moreBlock = $( document.createElement( "a" ) );
 
                        $view.hide().empty().addClass( "ui-" + role );
 
                        // create a label tag.
-                       $( labeltag ).text( option.label ).addClass( "ui-tokentextarea-label" );
+                       $( labeltag ).text( option.label ).addClass( "ui-tokentextarea-label" ).attr( "tabindex", 0 );
                        $view.append( labeltag );
 
                        // create a input tag
-                       $( inputbox ).addClass( "ui-tokentextarea-input ui-tokentextarea-input-visible ui-input-text ui-body-s" );
+                       $( inputbox ).addClass( "ui-tokentextarea-input ui-tokentextarea-input-visible ui-input-text ui-body-s" ).attr( "role", "textbox" );
                        $view.append( inputbox );
 
                        // create a anchor tag.
@@ -280,9 +280,11 @@ define( [ '../jquery.mobile.tizen.core' ], function ( ) {
                                        icon: "plus",
                                        style: "circle"
                                })
-                               .attr( "href", $.trim( option.link ) )
+                               .attr( { "href" : $.trim( option.link ), "tabindex" : 0 } )
                                .addClass( "ui-tokentextarea-link-base" )
-                               .addClass( className );
+                               .addClass( className )
+                               .find( "span.ui-btn-text" )
+                               .text( "Add recipient" );
 
                        // append default htmlelements to main widget.
                        $view.append( moreBlock );
@@ -292,9 +294,6 @@ define( [ '../jquery.mobile.tizen.core' ], function ( ) {
                        self._focusStatus = "init";
                        // display widget
                        $view.show();
-                       $view.attr( "tabindex", -1 ).focusin( function ( e ) {
-                               self.focusIn();
-                       });
 
                        // assign global variables
                        self._viewWidth = $view.innerWidth();
@@ -417,7 +416,7 @@ define( [ '../jquery.mobile.tizen.core' ], function ( ) {
                        // Create a new text HTMLDivElement.
                        textBlock = $( document.createElement( 'div' ) );
 
-                       textBlock.text( content ).addClass( "ui-tokentextarea-block" );
+                       textBlock.text( content ).addClass( "ui-tokentextarea-block" ).attr( { "aria-label" : "double tap to edit", "tabindex" : 0 } );
                        textBlock.css( {'visibility': 'hidden'} );
 
                        blocks = $view.find( "div" );
@@ -600,17 +599,18 @@ define( [ '../jquery.mobile.tizen.core' ], function ( ) {
 
                        var $view = this.element;
 
-                       $view.find( "label" ).show();
+                       $view.find( ".ui-tokentextarea-label" ).attr( "tabindex", 0 ).show();
                        $view.find( ".ui-tokentextarea-desclabel" ).remove();
                        $view.find( "div.ui-tokentextarea-sblock" ).removeClass( "ui-tokentextarea-sblock" ).addClass( "ui-tokentextarea-block" );
-                       $view.find( "div" ).show();
-                       $view.find( ".ui-tokentextarea-input" ).removeClass( "ui-tokentextarea-input-invisible" ).addClass( "ui-tokentextarea-input-visible" );
-                       $view.find( "a" ).show();
+                       $view.find( "div" ).attr( { "aria-label" : "double tap to edit", "tabindex" : 0 } ).show();
+                       $view.find( ".ui-tokentextarea-input" ).removeClass( "ui-tokentextarea-input-invisible" ).addClass( "ui-tokentextarea-input-visible" ).attr( "tabindex", 0 );
+                       $view.find( "a" ).attr( "tabindex", 0 ).show();
 
                        // change focus state.
                        this._modifyInputBoxWidth();
                        this._focusStatus = "focusIn";
-                       $view.removeClass( "ui-tokentextarea-focusout" ).addClass( "ui-tokentextarea-focusin" );
+                       $view.removeClass( "ui-tokentextarea-focusout" ).addClass( "ui-tokentextarea-focusin" ).removeAttr( "tabindex" );
+                       $view.find( ".ui-tokentextarea-input" ).focus();
                },
 
                focusOut : function () {
@@ -621,18 +621,21 @@ define( [ '../jquery.mobile.tizen.core' ], function ( ) {
                        var self = this,
                                $view = self.element,
                                tempBlock = null,
+                               stateBlock = null,
+                               numBlock = null,
                                statement = "",
                                index = 0,
                                lastIndex = 10,
-                               label = $view.find( "label" ),
+                               label = $view.find( ".ui-tokentextarea-label" ),
                                more = $view.find( "span" ),
                                blocks = $view.find( "div" ),
                                currentWidth = $view.outerWidth( true ) - more.outerWidth( true ) - label.outerWidth( true ),
                                blockWidth = 0;
 
-                       $view.find( ".ui-tokentextarea-input" ).removeClass( "ui-tokentextarea-input-visible" ).addClass( "ui-tokentextarea-input-invisible" );
-                       $view.find( "a" ).hide();
-                       blocks.hide();
+                       label.removeAttr( "tabindex" );
+                       $view.find( ".ui-tokentextarea-input" ).removeClass( "ui-tokentextarea-input-visible" ).addClass( "ui-tokentextarea-input-invisible" ).removeAttr( "tabindex" );
+                       $view.find( "a" ).removeAttr( "tabindex" ).hide();
+                       blocks.removeAttr( "aria-label" ).removeAttr( "tabindex" ).hide();
 
                        currentWidth = currentWidth - self._reservedWidth;
 
@@ -649,15 +652,18 @@ define( [ '../jquery.mobile.tizen.core' ], function ( ) {
 
                        if ( lastIndex !== blocks.length ) {
                                statement = self._stringFormat( self.options.description, blocks.length - lastIndex - 1 );
-                               tempBlock = $( document.createElement( 'label' ) );
-                               tempBlock.text( statement );
-                               tempBlock.addClass( "ui-tokentextarea-desclabel" );
+                               tempBlock = $( document.createElement( 'span' ) );
+                               tempBlock.addClass( "ui-tokentextarea-desclabel" ).attr( { "aria-label" : "more, double tap to edit", "tabindex" : "-1" } );
+                               stateBlock = $( document.createElement( 'span' ) ).text( statement ).attr( "aria-hidden", "true" );
+                               numBlock = $( document.createElement( 'span' ) ).text( blocks.length - lastIndex - 1 ).attr( "aria-label", "and" ).css( "visibility", "hidden" );
+                               tempBlock.append( stateBlock );
+                               tempBlock.append( numBlock );
                                $( blocks[lastIndex] ).after( tempBlock );
                        }
 
                        // update focus state
                        this._focusStatus = "focusOut";
-                       $view.removeClass( "ui-tokentextarea-focusin" ).addClass( "ui-tokentextarea-focusout" );
+                       $view.removeClass( "ui-tokentextarea-focusin" ).addClass( "ui-tokentextarea-focusout" ).attr( "tabindex", 0 );
                },
 
                inputText : function ( message ) {
@@ -768,7 +774,7 @@ define( [ '../jquery.mobile.tizen.core' ], function ( ) {
                                return;
                        }
 
-                       $view.find( "label" ).remove();
+                       $view.find( ".ui-tokentextarea-label" ).remove();
                        $view.find( "div" ).undelegate( "click" ).remove();
                        $view.find( "a" ).remove();
                        $view.find( ".ui-tokentextarea-input" ).unbind( "keyup" ).remove();
index b3459a2..be5dd40 100644 (file)
@@ -281,7 +281,8 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                },
                _OVERFLOW_DIR_NONE = 0,         /* ENUM */
                _OVERFLOW_DIR_UP = 1,           /* ENUM */
-               _OVERFLOW_DIR_DOWN = -1;        /* ENUM */
+               _OVERFLOW_DIR_DOWN = -1,        /* ENUM */
+               imgTagSrcAttrRE = /src\s*=\s*[\"\'][\w\/.]+.[A-z]+[\"\']/;
 
        function getCurrentTime () {
                return Date.now();
@@ -317,7 +318,7 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                        elapsed = getCurrentTime () - this.startTime;
                        elapsed = elapsed > duration ? duration : elapsed;
                        dx = this.speed * ( 1 - $.easing[this.easing]( elapsed / duration, elapsed, 0, 1, duration ) );
-                       x = this.pos + dx;
+                       x = this.pos + ( dx / 2 );
                        this.pos = x;
 
                        if ( elapsed >= duration ) {
@@ -372,7 +373,7 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                                _numItemData : 0,
                                _cacheItemData : function ( minIdx, maxIdx ) { },
                                _totalRowCnt : 0,
-                               _template : null,
+                               _templateText : null,
                                _maxViewSize : 0,
                                _modifyViewPos : 0,
                                _maxSizeExceptClip : 0,
@@ -425,7 +426,7 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                        self._direction = opts.direction === 'x' ? true : false;
 
                        // make view layer
-                       self._$clip = $( self.element ).addClass( "ui-scrollview-clip" ).addClass( "ui-virtualgrid-view" );
+                       self._$clip = $dom.addClass( "ui-scrollview-clip" ).addClass( "ui-virtualgrid-view" );
                        $item = $( document.createElement( "div" ) ).addClass( "ui-scrollview-view" );
                        self._clipSize =  self._calculateClipSize();
                        self._$clip.append( $item );
@@ -496,9 +497,9 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                        }
                        self._setElementTransform( -self._cellSize );
 
-                       self._replaceRow( self._$view.children().first(), self._totalRowCnt - 1 );
+                       self._replaceRow( self._$view[0].firstChild, self._totalRowCnt - 1 );
                        if ( opts.rotation && self._rowsPerView >= self._totalRowCnt ) {
-                               self._replaceRow( self._$view.children().last(), 0 );
+                               self._replaceRow( self._$view[0].lastChild, 0 );
                        }
                        self._setViewSize();
                },
@@ -534,12 +535,14 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                        var self = this,
                                opts = self.options,
                                width = 0,
-                               height = 0;
+                               height = 0,
+                               $template = null;
 
-                       self._template = $( "#" + opts.template );
-                       if ( !self._template ) {
+                       $template = $( "#" + opts.template );
+                       if ( !$template ) {
                                return ;
                        }
+                       self._templateText = self._insertAriaAttrToTmpl( $template.text() );
 
                        width = self._calculateClipWidth();
                        height = self._calculateClipHeight();
@@ -574,8 +577,8 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                        rowsPerView = Math.ceil( rowsPerView );
                        self._rowsPerView = parseInt( rowsPerView, 10 );
 
-                       $child = self._makeRows( rowsPerView + 2 );
-                       $( self._$view ).append( $child.children() );
+                       $child = $( self._makeRows( rowsPerView + 2 ) );
+                       self._$view.append( $child.children() );
                        self._$view.children().css( attributeName, self._cellSize + "px" );
                        self._$rows = self._$view.children().detach();
 
@@ -629,7 +632,7 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                        return ret;
                },
 
-               resize : function ( ) {
+               resize : function () {
                        var self = this,
                                ret = null,
                                rowsPerView = 0,
@@ -649,11 +652,11 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                                clipPosition = self._getClipPosition();
                                self._$view.hide();
 
-                               diffRowCnt = self._replaceRows(itemCount, prevcnt, self._totalRowCnt, clipPosition);
+                               diffRowCnt = self._replaceRows( itemCount, prevcnt, self._totalRowCnt, clipPosition );
                                self._maxSizeExceptClip = ( self._totalRowCnt - self._rowsPerView ) * self._cellSize;
                                self._maxSize = self._totalRowCnt * self._cellSize;
-                               self._scalableSize += (-diffRowCnt) * self._cellSize;
-                               self._reservedPos  += (-diffRowCnt) * self._cellSize;
+                               self._scalableSize += ( -diffRowCnt ) * self._cellSize;
+                               self._reservedPos  += ( -diffRowCnt ) * self._cellSize;
                                self._setScrollBarSize();
                                self._setScrollBarPosition( diffRowCnt );
 
@@ -769,11 +772,11 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
 
                        if ( self._direction ) {
                                self._$clip.append( prefix + "x" + suffix );
-                               self._hScrollBar = $( self._$clip.children( ".ui-scrollbar-x" ) );
+                               self._hScrollBar = self._$clip.children( ".ui-scrollbar-x" );
                                self._hScrollBar.find( ".ui-scrollbar-thumb" ).addClass( "ui-scrollbar-thumb-x" );
                        } else {
                                self._$clip.append( prefix + "y" + suffix );
-                               self._vScrollBar = $( self._$clip.children( ".ui-scrollbar-y" ) );
+                               self._vScrollBar = self._$clip.children( ".ui-scrollbar-y" );
                                self._vScrollBar.find( ".ui-scrollbar-thumb" ).addClass( "ui-scrollbar-thumb-y" );
                        }
                },
@@ -820,7 +823,8 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                        var self = this,
                                $sbt = null,
                                x = "0px",
-                               y = "0px";
+                               y = "0px",
+                               translate;
 
                        if ( self.options.rotation ) {
                                return ;
@@ -828,10 +832,10 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
 
                        self._currentItemCount = self._currentItemCount + di;
                        if ( self._vScrollBar ) {
-                               $sbt = self._vScrollBar .find( ".ui-scrollbar-thumb" );
+                               $sbt = self._vScrollBar.find( ".ui-scrollbar-thumb" );
                                y = ( self._currentItemCount * self._itemScrollSize ) + "px";
                        } else {
-                               $sbt = self._hScrollBar .find( ".ui-scrollbar-thumb" );
+                               $sbt = self._hScrollBar.find( ".ui-scrollbar-thumb" );
                                x = ( self._currentItemCount * self._itemScrollSize ) + "px";
                        }
                        self._setStyleTransform( $sbt, x, y, duration );
@@ -924,7 +928,7 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                                idx = 0,
                                replaceStartIdx = 0,
                                realRowCount = self._rowsPerView + 2,
-                               $row = null;
+                               rawView = self._$view[0];
 
                        if ( self._blockScroll ) {
                                if ( dy > 0 && distance >= -self._cellSize && self._scalableSize >= -self._cellSize ) {
@@ -963,16 +967,14 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                        if ( di > 0 ) { // scroll up
                                for ( i = replaceStartIdx; i < di; i++ ) {
                                        idx = -parseInt( ( sy / self._cellSize ) + i + 3, 10 );
-                                       $row = self._$view.children().last().detach();
-                                       self._replaceRow( $row, circularNum( idx, self._totalRowCnt ) );
-                                       self._$view.prepend( $row );
+                                       self._replaceRow( rawView.lastChild, circularNum( idx, self._totalRowCnt ) );
+                                       rawView.insertBefore( rawView.lastChild, rawView.firstChild );
                                }
                        } else if ( di < 0 ) { // scroll down
                                for ( i = replaceStartIdx; i > di; i-- ) {
                                        idx = self._rowsPerView - parseInt( ( sy / self._cellSize ) + i, 10 );
-                                       $row = self._$view.children().first().detach();
-                                       self._replaceRow( $row, circularNum( idx, self._totalRowCnt ) );
-                                       self._$view.append( $row );
+                                       self._replaceRow( rawView.firstChild, circularNum( idx, self._totalRowCnt ) );
+                                       rawView.insertBefore( rawView.firstChild, rawView.lastChild.nextSibling );
                                }
                        }
                        self._setScrollBarPosition( -di );
@@ -1228,8 +1230,7 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
 
                _calculateClipWidth : function () {
                        var self = this,
-                               view = $( self.element ),
-                               $parent = $( self.element ).parent(),
+                               $parent = self._$clip.parent(),
                                paddingValue = 0,
                                clipSize = $( window ).width();
 
@@ -1243,15 +1244,14 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                                paddingValue = parseInt( $parent.css( "padding-right" ), 10 );
                                clipSize = clipSize - ( paddingValue || 0 );
                        } else {
-                               clipSize = view.width();
+                               clipSize = self._$clip.width();
                        }
                        return clipSize;
                },
 
                _calculateClipHeight : function () {
                        var self = this,
-                               view = $( self.element ),
-                               $parent = view.parent(),
+                               $parent = self._$clip.parent(),
                                header = null,
                                footer = null,
                                paddingValue = 0,
@@ -1280,7 +1280,7 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                                        clipSize = clipSize - footer.outerHeight( true );
                                }
                        } else {
-                               clipSize = view.height();
+                               clipSize = self._$clip.height();
                        }
                        return clipSize;
                },
@@ -1290,7 +1290,7 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                                $tempBlock,
                                $cell;
 
-                       $tempBlock = self._makeRows( 1 );
+                       $tempBlock = $( self._makeRows( 1 ) );
                        self._$view.append( $tempBlock.children().first() );
                        if ( self._direction ) {
                                // x-axis
@@ -1311,7 +1311,7 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
 
                _calculateColumnCount : function ( ) {
                        var self = this,
-                               $view = $( self.element ),
+                               $view = self._$clip,
                                viewSize = self._direction ? $view.innerHeight() : $view.innerWidth(),
                                itemCount = 0 ;
 
@@ -1349,59 +1349,99 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                //----------------------------------------------------//
                _makeRows : function ( count ) {
                        var self = this,
-                               opts = self.options,
                                index = 0,
-                               $row = null,
-                               $wrapper = null;
+                               row = null,
+                               wrapper = null;
 
-                       $wrapper = $( self._createElement( "div" ) );
-                       $wrapper.addClass( "ui-scrollview-view" );
+                       wrapper = self._createElement( "div" );
+                       wrapper.setAttribute( "class", "ui-scrollview-view" );
                        for ( index = 0; index < count ; index += 1 ) {
-                               $row = self._makeRow( self._template, index );
+                               row = self._makeRow( index );
                                if ( self._direction ) {
-                                       $row.css( "top", 0 ).css( "left", ( index * self._cellSize ) );
+                                       row.style.top = 0;
+                                       row.style.left = index * self._cellSize;
                                }
-                               $wrapper.append( $row );
+                               wrapper.appendChild( row );
                        }
-                       return $wrapper;
+                       return wrapper;
                },
 
                // make a single row block
-               _makeRow : function ( myTemplate, rowIndex ) {
+               _makeRow : function ( rowIndex ) {
                        var self = this,
-                               opts = self.options,
                                index = rowIndex * self._itemCount,
-                               htmlData = null,
-                               itemData = null,
                                colIndex = 0,
-                               attrName = self._direction ? "top" : "left",
                                blockClassName = self._direction ? "ui-virtualgrid-wrapblock-x" : "ui-virtualgrid-wrapblock-y",
-                               blockAttrName = self._direction ? "top" : "left",
-                               wrapBlock = $( self._createElement( "div" ) );
+                               wrapBlock = self._createElement( "div" ),
+                               strWrapInner = "",
+                               attrName = self._direction ? "top" : "left";
 
-                       wrapBlock.addClass( blockClassName ).attr( "row-index", rowIndex );
                        for ( colIndex = 0; colIndex < self._itemCount; colIndex++ ) {
-                               htmlData = self._makeHtmlData( myTemplate, index, colIndex );
-                               if ( htmlData ) {
-                                       wrapBlock.append( htmlData );
-                               }
+                               strWrapInner += self._makeHtmlData( index, colIndex, attrName );
                                index += 1;
                        }
+                       wrapBlock.innerHTML = strWrapInner;
+                       wrapBlock.setAttribute( "class", blockClassName );
+                       wrapBlock.setAttribute( "row-index", String( rowIndex ) );
+                       self._fragment.appendChild( wrapBlock );
                        return wrapBlock;
                },
 
-               _makeHtmlData : function ( myTemplate, dataIndex, colIndex ) {
+               _makeHtmlData : function ( dataIndex, colIndex, attrName ) {
                        var self = this,
-                               htmlData = null,
-                               itemData = null,
-                               attrName = self._direction ? "top" : "left";
+                               htmlStr = "",
+                               itemData = null;
 
                        itemData = self._itemData( dataIndex );
                        if ( itemData ) {
-                               htmlData = self._tmpl( itemData );
-                               htmlData.css( attrName, ( colIndex * self._cellOtherSize ) ).addClass( "virtualgrid-item" );
+                               htmlStr = self._getConvertedTmplStr( itemData );
+                               htmlStr = self._insertPosToTmplStr( htmlStr, attrName, ( colIndex * self._cellOtherSize ) );
                        }
-                       return htmlData;
+                       return htmlStr;
+               },
+
+               _insertPosToTmplStr : function ( tmplStr, attrName, posVal ) {
+                       var tagCloseIdx = tmplStr.indexOf( '>' ),
+                               classIdx = -1,
+                               firstPart,
+                               lastPart,
+                               result,
+                               found = false,
+                               targetIdx = 0,
+                               firstPartLen,
+                               i = 0;
+
+                       if ( tagCloseIdx === -1 ) {
+                               return;
+                       }
+
+                       firstPart = tmplStr.slice( 0, tagCloseIdx );
+                       lastPart = tmplStr.slice( tagCloseIdx, tmplStr.length );
+
+                       classIdx = firstPart.indexOf( 'class' );
+
+                       if ( classIdx !== -1 ) {
+                               firstPartLen = firstPart.length;
+                               for ( i = classIdx + 6; i < firstPartLen; i++ ) {
+                                       if ( firstPart.charAt( i ) === "\"" || firstPart.charAt( i ) === "\'" ) {
+                                               if ( found === false ) {
+                                                       found = true;
+                                               } else {
+                                                       targetIdx = i;
+                                                       break;
+                                               }
+                                       }
+                               }
+                               result = firstPart.slice( 0, targetIdx ) + " virtualgrid-item" + firstPart.slice( targetIdx, firstPartLen ) + lastPart;
+                       } else {
+                               result = firstPart + " class=\"virtualgrid-item\"" + lastPart;
+                       }
+
+                       if ( !isNaN( posVal ) ) {
+                               result = result.replace( '>', " style=\"" + attrName + ": " + String( posVal ) + "px\">");
+                       }
+
+                       return result;
                },
 
                _increaseRow : function ( num ) {
@@ -1419,11 +1459,11 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
 
                        for ( idx = 1 ; idx <= num ; idx++ ) {
                                if ( tailItemIndex + idx  >= self._totalRowCnt ) {
-                                       $row = self._makeRow( self._template, headItemIndex );
+                                       $row = $( self._makeRow( headItemIndex ) );
                                        self._$view.prepend( $row );
                                        headItemIndex -= 1;
                                } else {
-                                       $row = self._makeRow( self._template, tailItemIndex + idx );
+                                       $row = $( self._makeRow( tailItemIndex + idx ) );
                                        self._$view.append( $row );
                                }
                                if ( self._direction ) {
@@ -1480,39 +1520,17 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
 
                _replaceRow : function ( block, index ) {
                        var self = this,
-                               opts = self.options,
-                               $columns = null,
-                               $column = null,
-                               $block = block.attr ? block : $( block ),
-                               data = null,
-                               htmlData = null,
-                               myTemplate = null,
-                               idx = 0,
-                               dataIdx = 0,
                                tempBlocks = null;
 
-                       $columns = $block.attr( "row-index", index ).children();
-                       if ( $columns.length !== self._itemCount ) {
-                               $block.children().remove();
-                               tempBlocks = $( self._makeRow( self._template, index ) );
-                               $block.append( tempBlocks.children() );
-                               tempBlocks.remove();
-                               return ;
+                       while ( block.hasChildNodes() ) {
+                               block.removeChild( block.lastChild );
                        }
 
-                       dataIdx = index * self._itemCount;
-                       for ( idx = 0; idx < self._itemCount ; idx += 1 ) {
-                               $column = $columns.eq( idx );
-                               data = self._itemData( dataIdx );
-                               if ( $column && data ) {
-                                       htmlData = self._tmpl( data );
-                                       self._replace( $column, htmlData, false );
-                                       htmlData.remove();      // Clear temporary htmlData to free cache
-                                       dataIdx ++;
-                               } else if ( $column && !data ) {
-                                       $column.remove();
-                               }
+                       tempBlocks = self._makeRow( index );
+                       while ( tempBlocks.children.length ) {
+                               block.appendChild( tempBlocks.children[0] );
                        }
+                       tempBlocks.parentNode.removeChild( tempBlocks );
                },
 
                _createElement : function ( tag ) {
@@ -1521,6 +1539,7 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                        this._fragment.appendChild( element );
                        return element;
                },
+
                _getObjectNames : function ( obj ) {
                        var properties = [],
                                name = "";
@@ -1531,20 +1550,98 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                        this._properties = properties;
                },
 
-               _tmpl : function ( data ) {
+               _getConvertedTmplStr : function ( data ) {
                        var self = this,
-                               idx = 0,
+                               dataProperties = self._properties,
+                               i = 0,
                                plainMsg,
-                               ret;
+                               ret = "";
+
                        if ( !data ) {
                                return ;
                        }
 
-                       plainMsg = self._template.text();
-                       for ( idx = 0 ; idx < self._properties.length ; idx++ ) {
-                               plainMsg = self._strReplace( plainMsg, "${" + self._properties[ idx ] + "}" , data[ self._properties[ idx ] ] );
+                       plainMsg = self._templateText;
+                       for ( i = 0; i < dataProperties.length; i++ ) {
+                               plainMsg = self._strReplace( plainMsg, "${" + dataProperties[ i ] + "}" , data[ dataProperties[ i ] ] );
+                       }
+                       plainMsg = self._changeImgSrcAriaAttrFromTmpl( plainMsg );
+
+                       return plainMsg;
+               },
+
+               _changeImgSrcAriaAttrFromTmpl : function ( plainMsg ) {
+                       var self = this,
+                               ret = "",
+                               targetTagIdx,
+                               beforeTargetTag = "",
+                               afterTargetTag = "",
+                               imgFileName,
+                               imgSrcSlashIdx,
+                               temp,
+                               srcRegExpResult;
+
+                       temp = plainMsg;
+                       targetTagIdx = temp.indexOf( "$ARIA-IMG-SRC-ALT$" );
+                       while ( targetTagIdx !== -1 ) {
+                               imgFileName = "";
+                               beforeTargetTag = beforeTargetTag + temp.slice( 0, targetTagIdx + 19 );
+                               afterTargetTag = temp.slice( targetTagIdx + 19, temp.length );
+                               srcRegExpResult = afterTargetTag.match( imgTagSrcAttrRE );
+                               if ( srcRegExpResult ) {
+                                       imgSrcSlashIdx = srcRegExpResult[0].lastIndexOf( "/" );
+                                       if ( imgSrcSlashIdx !== -1 ) {
+                                               imgFileName = srcRegExpResult[0].slice( imgSrcSlashIdx + 1, -1 );
+                                       }
+                               }
+                               beforeTargetTag = beforeTargetTag.replace( "$ARIA-IMG-SRC-ALT$", imgFileName );
+                               temp = afterTargetTag;
+                               targetTagIdx = temp.indexOf( "$ARIA-IMG-SRC-ALT$" );
+                               ret = beforeTargetTag + afterTargetTag;
+                       }
+
+                       if ( ret === "" ) {
+                               ret = plainMsg;
+                       }
+
+                       return ret;
+               },
+
+               _insertAriaAttrToTmpl : function ( plainMsg ) {
+                       var ret = "",
+                               targetTagIdx,
+                               beforeTargetTag = "",
+                               afterTargetTag = "",
+                               temp;
+
+                       temp = plainMsg.replace( "<div", "<div tabindex=\"0\" aria-selected=\"true\"" );
+                       targetTagIdx = temp.indexOf( "<img" );
+                       if ( targetTagIdx !== -1 ) {
+                               while ( targetTagIdx !== -1 ) {
+                                       beforeTargetTag = beforeTargetTag + temp.slice( 0, targetTagIdx + 4 );
+                                       afterTargetTag = temp.slice( targetTagIdx + 4, temp.length );
+                                       beforeTargetTag = beforeTargetTag + " role=\"img\" alt=\"$ARIA-IMG-SRC-ALT$\"";
+                                       temp = afterTargetTag;
+                                       targetTagIdx = temp.indexOf( "<img" );
+                                       ret = beforeTargetTag + afterTargetTag;
+                               }
+                               temp = ret;
+                               targetTagIdx = temp.indexOf( "<span" );
+                               beforeTargetTag = "";
+                               while ( targetTagIdx !== -1 ) {
+                                       beforeTargetTag = beforeTargetTag + temp.slice( 0, targetTagIdx + 5 );
+                                       afterTargetTag = temp.slice( targetTagIdx + 5, temp.length );
+                                       beforeTargetTag = beforeTargetTag + " aria-hidden=\"true\" tabindex=\"-1\"";
+                                       temp = afterTargetTag;
+                                       targetTagIdx = temp.indexOf( "<span" );
+                                       ret = beforeTargetTag + afterTargetTag;
+                               }
+                       }
+
+                       if ( ret === "" ) {
+                               ret = plainMsg;
                        }
-                       ret = $( plainMsg );
+
                        return ret;
                },
 
@@ -1556,35 +1653,8 @@ define( [ '../jquery.mobile.tizen.core', '../jquery.mobile.tizen.scrollview' ],
                                index = temp.indexOf( stringToFind );
                        }
                        return temp;
-               },
-
-               /* Text & image src replace function */
-               // @param oldItem   : prev HtmlDivElement
-               // @param newItem   : new HtmlDivElement for replace
-               // @param key       :
-               _replace : function ( oldItem, newItem, key ) {
-                       var NODETYPE = { ELEMENT_NODE : 1, TEXT_NODE : 3 };
-
-                       $( oldItem ).find( ".ui-li-text-main", ".ui-li-text-sub", "ui-btn-text" ).each( function ( index ) {
-                               var oldObj = $( this ),
-                                       newText = $( newItem ).find( ".ui-li-text-main", ".ui-li-text-sub", "ui-btn-text" ).eq( index ).text();
-
-                               $( oldObj ).contents().filter( function () {
-                                       return ( this.nodeType == NODETYPE.TEXT_NODE );
-                               }).get( 0 ).data = newText;
-                       });
-
-                       $( oldItem ).find( "img" ).each( function ( imgIndex ) {
-                               var oldObj = $( this ),
-                                       newImg = $( newItem ).find( "img" ).eq( imgIndex ).attr( "src" );
-
-                               $( oldObj ).attr( "src", newImg );
-                       });
-                       $( oldItem ).removeData();
-                       if ( key ) {
-                               $( oldItem ).data( key, $( newItem ).data( key ) );
-                       }
                }
+
        } );
 
        $( document ).bind( "pagecreate create", function ( e ) {
index dda05cf..d18233b 100644 (file)
 
 .ui-btn-icon-only .ui-btn-text
 {
-       left: -9999px;
-       display: none;
+       display:block;
+       width: 0;
+       height: 0;
+       overflow: hidden;
 }
 
 .ui-btn.ui-btn-corner-all
index e3f25e7..6519d23 100644 (file)
                border-radius : 0px;
        }
 
-       > .ui-btn:nth-child(2) {
-               right : 13 * @unit_base;
-       }
-
-       > .ui-btn:nth-child(3) {
-               right : 56 * @unit_base;
-       }
-
-       > img + h1 + .ui-btn:nth-child(3) {
-               right : 13 * @unit_base;
-       }
-
-       > img + h1 + .ui-btn:nth-child(3) + .ui-btn {
-               right : 56 * @unit_base;
-       }
-
-       > img + h1 + span.ui-title-text-sub + .ui-btn:nth-child(4) {
+       .ui-btn-right-0 {
                right : 11 * @unit_base;
        }
 
-       > img + h1 + span.ui-title-text-sub + .ui-btn:nth-child(4) + .ui-btn {
-               right : 58 * @unit_base;
+       .ui-btn-right-1 {
+               right : 56 * @unit_base;
        }
 
        > .ui-btn:not(.ui-btn-icon_only):nth-child(2) {