Aktualizuję stary kod, aby był zgodny z ADA i muszę nadać każdemu <li>
w nawigacji tabindex="0"
, aby były dostępne za pomocą klawiatury.
To jest kod, który generuje nawigację <li>
. Nie został napisany przeze mnie i wiedziałem tylko, czym jest Arbre, ponieważ wskazał to starszy programista, ale żadne z nas nie jest pewne, jak dodać tabindex.
def nav_item_column_list(nav_item, row_number, column_number)
sub_item = nav_item.children.where(column_number: column_number).all[row_number]
if sub_item.present?
Arbre::Context.new({:helper => self}) do
ul do
li do
a sub_item.title, href: sub_item.url
if sub_item.children.count > 0
ul do
sub_item.children.each do |child|
li do
a child.title, href: child.url
end
end
end
end
end
end
end
end
Koniec
1 odpowiedź
Chociaż dokumentacja jest zwarta, mówi
Atrybuty znaczników, w tym klasy id i HTML, są przekazywane jako parametr skrótu, a treść znacznika jest przekazywana jako blok
Więc myślę, że możesz napisać coś takiego
li tabindex: 0 do
Więc przetestowałem to:
Arbre::Context.new { li tabindex: 0 }
=> <li tabindex="0"></li>
Podobne pytania
Nowe pytania
html
HTML (HyperText Markup Language) to język znaczników służący do tworzenia stron internetowych i innych informacji wyświetlanych w przeglądarce internetowej. Pytania dotyczące HTML powinny zawierać minimalny możliwy do odtworzenia przykład i pewne wyobrażenie o tym, co próbujesz osiągnąć. Ten tag jest rzadko używany samodzielnie i często jest łączony z [CSS] i [javascript].
li do
nali tabindex: 0 do
W edytowanej odpowiedzi, gdzieArbre::Context.new { li tabindex: 0 } => <li tabindex="0"></li>
znalazłby się w opublikowanym przeze mnie kodzie? Nigdy wcześniej nie korzystałem z Arbre i jest to jedyna część witryny, jaką widziałem, więc jestem bardzo zagubiony, jak to działa.Arbre::Context.new
zajmuje blok, więc powinieneś zrobić dokładnie to samo. Czy wymieniłeś wszystkie wystąpieniali
(ponieważ występuje wiele razy? Zgaduję, że najważniejszy jest najwyższy poziom? Jak sprawdziłeś, czy to zadziałało/nie działało? Czy możesz przetestować metodę i sprawdzić wyniki wrails console
?Czy jest jakieś pokrycie testowe?