2010-06-15 2 views
0

что вы думаете, ребята из этого кода, чтобы помочь с некоторыми лентяями там :)JQuery вариант доступности

$('a').each(function (i,n){ 
    $title = $(n).attr('title'); 
    if(!$title){ 
     $(n).attr('title',$(n).html()); 
    } 
}); 

Учитывая, что большинство ссылок имеют такое же название, как их текст так ... позвольте мне knwo если любой из вас там такой?

Таким образом, мы можем сказать W3School один ящик галочкой :)

+1

Какого черта есть $ title "$", переменная? это не php ради бога. – Prashanth

+0

не имеет значения. Я использую $ для отличия, которые являются jQuery vars и которые являются нормальными js vars, это не влияет на то, как он хранит данные – Val

+0

, но я все же соглашусь с тем, что поставщик браузеров должен сделать это по умолчанию для получения внутреннего текста Val

ответ

1

Вы должны PREfix переменного с var заявления, чтобы предотвратить это является подразумеваемым глобальным.

Вся ваша вещь может быть упрощена:

$('a:not([title])').attr('title', function() { 
    return $(this).text(); 
}); 

(предпочитая text() над html()).

1

это лишняя работа для браузера. если у вас есть большое количество ссылок, этот код может значительно замедлить время инициализации.

Однако, если вы хотите ускорить его, вы можете скрыть весь текст (т. Е. Вынуть его из DOM), применить этот код и снова показать его. Тем не менее это может отразить ваш текст.

Кроме того, просто не полениться и поставить в названии :)

+0

Я согласен, он просто попадает в DOM в цикле. – Prashanth

+0

им не лениться, всегда используйте название, просто подумал, что концепция поможет тем, кто есть :) – Val

0

Какую цель ставите перед собой? Вы просто пытаетесь удовлетворить какой-то произвольный контрольный список? Или вы на самом деле пытаетесь сделать свой сайт более доступным для пользователей? Пробовали ли вы доступный браузер - подтвердили ли вы, что они не просто используют текст ссылки на ссылках, у которых нет набора атрибутов заголовка? Если это так, вы на самом деле ничего не добились, а только сделали ваш сайт медленнее для всех.

Если вы хотите поддерживать доступность, сделайте это правильно и используйте правильно продуманный атрибут title.

+0

Как я уже сказал, это для некоторых ленивых людей, не говоря уже о себе. вы всегда можете использовать заголовок, это не повлияет на него. вы можете указать, что на самом конце страницы или на странице загружается ... поэтому она вообще не замедлит работу сайта. также логично, что элемент должен существовать до закалки с ним. как только страница загрузится, код может ударить, поэтому не будет замедлять страницу вообще, это фоновый процесс. – Val

+0

+1 @Val Заголовок предназначен для передачи дополнительной информации в текст ссылки. Заголовок, идентичный его текстовому тексту, приносит никакой информации, поэтому бесполезно, поэтому не должно существовать. Я ничего не знаю об этом блоке W3schools, который, по вашему мнению, вам нужно пометить, но если он попросит 'title' всюду, это просто неправильно. Методы WCAG 2.0 [H30] (http://www.w3.org/TR/WCAG-TECHS/H30.html) и [H78] (http://www.w3.org/TR/WCAG-TECHS/H78. html) до H81, конечно, не способствуют этому. EDIT: извините, что вы можете уничтожить свой скрипт, это не поможет людям, которые в этом нуждаются. – FelipeAls

+0

И я добавлю, что названия, идентичные текстуу ссылок, могут быть хуже, чем бесполезны, на самом деле быть контрпродуктивными, отвлекая пользователей.Пользователь экрана, который прослушивает две или три ссылки, где это происходит, отключит рендеринг заголовков, а затем пропустит полезные заголовки, где они присутствуют в HTML-коде! – FelipeAls