diff options
Diffstat (limited to 'lib/rdoc/generator/template/darkfish/js/search.js')
-rw-r--r-- | lib/rdoc/generator/template/darkfish/js/search.js | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/rdoc/generator/template/darkfish/js/search.js b/lib/rdoc/generator/template/darkfish/js/search.js index dbdfdcbc4c..563ed7e54e 100644 --- a/lib/rdoc/generator/template/darkfish/js/search.js +++ b/lib/rdoc/generator/template/darkfish/js/search.js @@ -39,9 +39,12 @@ Search.prototype = $.extend({}, Navigation, new function() { if (value == '') { this.lastQuery = value; this.$result.empty(); + this.$result.attr('aria-expanded', 'false'); this.setNavigationActive(false); } else if (value != this.lastQuery) { this.lastQuery = value; + this.$result.attr('aria-busy', 'true'); + this.$result.attr('aria-expanded', 'true'); this.firstRun = true; this.searcher.find(value); } @@ -55,23 +58,28 @@ Search.prototype = $.extend({}, Navigation, new function() { } for (var i=0, l = results.length; i < l; i++) { - target.appendChild(this.renderItem.call(this, results[i])); + var item = this.renderItem.call(this, results[i]); + item.setAttribute('id', 'search-result-' + target.childElementCount); + target.appendChild(item); }; if (this.firstRun && results.length > 0) { this.firstRun = false; this.$current = $(target.firstChild); - this.$current.addClass('current'); + this.$current.addClass('search-selected'); } if (jQuery.browser.msie) this.$element[0].className += ''; + + if (isLast) this.$result.attr('aria-busy', 'false'); } this.move = function(isDown) { if (!this.$current) return; var $next = this.$current[isDown ? 'next' : 'prev'](); if ($next.length) { - this.$current.removeClass('current'); - $next.addClass('current'); + this.$current.removeClass('search-selected'); + $next.addClass('search-selected'); + this.$input.attr('aria-activedescendant', $next.attr('id')); this.scrollIntoView($next[0], this.$view[0]); this.$current = $next; } |