Wikipédia:Esplanada/propostas/Chega de pseudo-listas! (5jul2012)

Coisas que não são listas (formatadas como se fossem)Editar

Esta proposta (assim como a de acabar com as tabelas bonitas) pode ser vista como um subtópico da proposta mais abrangente que visa dar a devida importância à acessibilidade e a semântica das páginas da Wikipédia.

As três têm em comum o objetivo de se iniciar de uma vez a limpar a bagunça que tem se acumulado nas páginas ao longo dos anos devido à má utilização de tags e atributos HTML (para formatar em vez de dar significado aos trechos das páginas), e consequente subutilização de CSS.

Inicialmente eu só ia fazer uma correção na Predefinição:Artigo principal, que conforme indiquei no sumário, visava a

"remoção de <dd> e <dl> supérfluos, pois isso não é uma lista de definições (se houver motivo para aumentar a margem à esquerda, defina-se isso em uma classe CSS aplicada neste <div>, talvez a dablink)".

Como fui revertido, deduzo que a margem à esquerda do texto da predefinição é importante, então acho que para corrigir o problema semântico em questão será preciso alterar não apenas a predefinição mas também o MediaWiki:Common.css, para que as páginas que a utilizam fiquem corretas.

Se quiser mais detalhes, expanda este trecho...

A princípio, bastaria refazer minha edição e acrescentar um atributo style="margin-left:1.5em;" para que obtivéssemos o mesmo efeito visual da versão anterior à minha edição, e sem usar <dd> e <dl> indevidamente. No entanto, como o texto também está sendo formatado em itálico, com uma tag <i>...</i>, e a predefinição é usada em muitos artigos, imaginei que seria vantajoso remover a tag extra, deixando apenas o div e uma classe "dablink", e mover a formatação para a folha de estilos global do site.

Fui bisbilhotar na wiki inglesa e vi que estava reinventando a roda: por incrível que pareça, a classe já está lá na predefinição desde [20??], mas sua aparência nunca foi definida, ou melhor, até foi: definiu-se que quem usa o monobook não verá a dablink ao imprimir a página.

Obviamente, os leitores lusófonos é que pagam a conta por causa da nossa inércia... (o monobook deixou de ser o tema padrão há anos, e o excesso de tags adicionais só aumenta o tamanho das páginas à toa).

Além disso, enquanto os ingleses em 2006 já estavam otimizando as páginas por meio da remoção do ":" e do itálico que seriam incorporados na classe "dablink" (cuja aparência na época também não tinha nada de especial), nós em abril de 2010 estávamos triplicando a quantidade de código necessária na predefinição:

  • Incluímos a classe "dablink" (apenas para fins semânticos, já que não havia há estilos associados a ela por padrão), mas
  • Mantivemos o ":", que faz com que o texto vire uma lista de definições (<dl>, <dd>, em HTML), o que é semanticamente incorreto (afinal isso não é uma lista!)
  • Mantivemos a tag extra para o itálico, sendo que bastava ter definido isso na dablink.

Para quem quiser ver um pouco mais, as discussões que precederam a mudança na enwiki foram estas:

O que proponho é copiarmos o seguinte da en:MediaWiki:Common.css para a MediaWiki:Common.css (para ser possível corrigir/simplificar a predefinição mencionada e outras do gênero - imagino que há várias parecidas):

/* Hatnotes and disambiguation notices */
.rellink,
.dablink {
    font-style: italic;
    /* @noflip */
    padding-left: 1.6em;
    margin-bottom: 0.5em;
}
.rellink i,
.dablink i {
    font-style: normal;
}

Alguém se opõe às simplificações? Se sim, por que? Helder 22h42min de 5 de julho de 2012 (UTC)

PS: Não sei se por aqui aconteceu de aplicarem "subst" em predefinições que usam dablink/rellink, mas se for o caso talvez seja preciso ajuda de robôs para corrigir esses casos (como na wiki inglesa). Helder 22h42min de 5 de julho de 2012 (UTC)

Concordo. Abaixo a quantidade de HTML inútil enviado aos leitores e a subutilização do CSS. !Silent (discussão) 23h18min de 5 de julho de 2012 (UTC)
  Concordo Fui eu que desfiz a alteração, não por discordar, mas porque modificações que implicam alterações de layout de muitas páginas, nomeadamente mudar uma predef muito usada há muito tempo, devem ser discutidas. Dito de outra forma: possivelmente nem era necessário esta discussão, conquanto o aspeto visual não fosse muito alterado. Só tenho uma pergunta: as classes CSS acima só são usadas por {{Artigo principal}}? Convém averiguar isso antes de se avançar com as alterações. --Stegop (discussão) 23h50min de 5 de julho de 2012 (UTC)
Não, as classes são usadas para substituir o : quando necessário, como no caso da predef {{Artigo principal}}.
Só não entendi o por quê de duas classes para fazer exatamente a mesma coisa. !Silent (discussão) 00h19min de 6 de julho de 2012 (UTC)
Também não sei ainda o motivo de existirem duas classes. Talvez possamos descobrir com o WikiBlame com e onde a "rellink" surgiu, e com que objetivo foi criada. Aí saberemos se é necessário manter as duas. Helder 12h31min de 6 de julho de 2012 (UTC)
As duas classes têm significados diferenets: a "rellink" serve para marcar os "links relacionados" enquanto que a "dablink" serve para os de "desambiguação". Ver en:Wikipedia:Village pump (technical)/Archive 57#Dablink for section hatnotes. Helder 03h12min de 19 de julho de 2012 (UTC)
Pesquisar por "dablink" só mostra um resultado no domínio predefinição: a Predefinição:Dablink. Mas sabemos que a dablink está na Predefinição:Artigo principal, então acho que não poderemos confiar na Especial:Busca para isso  . Será melhor que alguém com uma cópia do dump mais recente da Wikipédia (de 27 de junho de 2012) use o AWB para gerar uma lista de todas as páginas que contenham "dablink", para termos uma ideia melhor do que precisará ser alterado (e se há artigos em que ela está sendo usada diretamente, talvez por causa do "subst"). Por hora, observei o seguinte:
A Predefinição:Rellink tem cerca de 500 afluentes e a Predefinição:Dablink cerca de 100.
A Categoria:!Predefinições para desambiguações tem algumas predefinições que usam dablink e o ":". Não conferi todas. Helder 12h31min de 6 de julho de 2012 (UTC)
Aqui estão as listas obtidas ao procurar por "rellink" e por "dablink" no dump de 27 de junho de 2012. A "rellink" aparece em 15 páginas e a "dablink" em 119. Helder 13h45min de 8 de julho de 2012 (UTC)
  Apoio a proposta, com isso poderá ajudar a simplificar ainda mais. Vitor Mazuco Msg 13h49min de 9 de julho de 2012 (UTC)
  Concordo e   Apoio! Gostei! Abraços! Mar França (discussão) 04h12min de 25 de julho de 2012 (UTC)
  Concordo. Não entendi muito bem a parte técnica, mas tem havido abuso nessas tabelas (fenômeno que eu chamo de "tabelite") — ator com duas novelas tendo a filmografia tabelada, por exemplo. Se a proposta vai inibir isso, eu apoio. Yanguas diz!-fiz 14h53min de 26 de julho de 2012 (UTC)
  Concordo. Não entendi bem isso tecnicamente, mas vale a boa vontade! Braz Leme (discussão) 13h04min de 16 de outubro de 2015 (UTC)

ImplementaçãoEditar

Defini a classe no MediaWiki:Common.css e atualizei algumas predefinições, mas há varias outras na lista de páginas que contém as classes. Helder 13h24min de 25 de outubro de 2012 (UTC)

Listas (formatadas como se não fossem)Editar

Listas horizontaisEditar

Conforme mencionei nesta página, acredito que deveríamos definir também os estilos necessários no MediaWiki:Common.css para que pudessem ser usadas listas de verdade em diversas predefinições e páginas em que atualmente usa-se o caractere "" para separar diversos itens do que deveria ser, de fato, uma lista. Alguns exemplos são:

Na Wikipédia inglesa, o estilo parece estar definido nas classes "hlist" e "hnum" do en:MediaWiki:Common.css. Sugiro que seja implementado o mesmo por aqui, para que listas horizontais possam passar a ser feitas de forma semanticamente correta.

Para mais detalhes, ver:

E sobre como foi criada a classe, ver:

Helder 00h22min de 29 de julho de 2012 (UTC)

E então? Isso pode ser implementado? Helder 00h08min de 11 de agosto de 2012 (UTC)
Eu apoio. Isso parece ser um recurso que não mudará (ou mudará pouco) o visual das coisas, e facilitará a edição dessas predefs pq seria só criar a lista como se faz normalmente, padronizando tb as coisas (alguns usam *, outros  • , e tem outras variações por aí), além de arrumar a semantica (ou algo técnico por aí) das páginas. Não vejo impedimento algum, ao menos nenhum impedimento grande para exigir mt apoio para poder aprovar, tendo ficado aberto já por duas semanas sem oposição já poderia implementar. Rjclaudio msg 00h29min de 11 de agosto de 2012 (UTC)
Também concordo. !Silent (discussão) 00h38min de 11 de agosto de 2012 (UTC)
Fiz o pedido aos administradores (espero não ter esquecido nenhuma parte do código necessário). Helder 20h19min de 11 de agosto de 2012 (UTC)
O Common.css foi mudado. E agora? Tem q mudar algo na {{Navbox}}? Como aplica nas predefs? Rjclaudio msg 15h27min de 15 de agosto de 2012 (UTC)
É só usar asteriscos normalmente e colocar a classe "hlist" nos elementos apropriados. Por exemplo, a MRDebates eu alterei assim. Na wiki inglesa existe a en:Template:Flatlist que pode ser útil em alguns casos. Ainda não sei em que lugar colocam a classe na navbox (imagino que é cheia de sub (ou meta) predefinições). Helder 22h52min de 15 de agosto de 2012 (UTC)
Acredito que bastará fazer esta alteração para tornar possível começar a migrar as navboxes. Helder 22h17min de 24 de agosto de 2012 (UTC)
Na verdade, foi preciso fazer mais uma correção na Predefinição:Navbox/core. Helder 20h42min de 1 de setembro de 2012 (UTC)
ConversãoEditar

Acredito que agora já podemos começar a corrigir as navboxes típicas como eu fiz na Predefinição:CPLP e na Predefinição:Astronomia. Para facilitar, parece que pode-se usar uma expressão regular:

  • Localizar: /(\| *(?:lista?\d+|acima|ab(?:ove|aixo)|below) *= *)(?:\{\{ *[Nn]owrap begin *\}\} *)?| *(?:(\|list\d+ *= *)(?:\{\{ *[Nn]owrap begin *\}\} *)?|\{\{ *(?:[·•][Ww](?:rap)?|[·,•*]|[Dd]ot|[Pp]onto|[Bb]ullet) *\}\}|(?:(?: )?[·•]|&(?:bull|#8226|#x2022|middot);)) */g
  • Substituir por: $1\n* 

Helder 20h42min de 1 de setembro de 2012 (UTC)

No caso de listas horizontais em que certos itens são agrupados com parênteses, ou nas quais o primeiro item é diferenciado com negrito, pode-se usar sublistas como neste exemplo. Helder 15h47min de 2 de setembro de 2012 (UTC)
Nossa qnt coisa diferente. Imagino q o uso principal da hlist seja pra navbox certo? Isso tudo merece ir pra documentação da navbox. Se usar em outro lugar podia simplesmente linkar para essa doc. Rjclaudio msg 15h53min de 2 de setembro de 2012 (UTC)
Não consegui usar o ** na {{Artigos de Sonic}} e na {{Assassin's Creed}}, embora tenha conseguido na {{Age of Empires}} e {{Action Hero}}. Pq? Seria a demora no servidor de atualizar os afluentes da {{NavboxVG}}? A {{Assassin's Creed}} usa {{Navbox subgroup}}, tb precisa atualizar essa predef ou só o q foi feito na {{Navbox}} está bom? Rjclaudio msg 16h19min de 2 de setembro de 2012 (UTC)
Olha, não conheço bem a hierarquia dessas predefinições. Mas se alguma navbox usa algo diferente de {{Navbox}} + {{Navbox/core}} como base, provavelmente serão necessárias mais atualizações como as que fizemos recentemente nessas duas... Helder 16h23min de 2 de setembro de 2012 (UTC)
Além da {{·}} tb tem a {{}}, {{*}} e {{ponto}}, além das q não usam a predef e simplesmente colocam ·, •, e até as q usam &xxxx (não sei como é), e as q usam - ou | como separador. Tem uma infinidade de variações, finalmente vamos conseguir padronizar isso. Rjclaudio msg 16h06min de 2 de setembro de 2012 (UTC)
Atualizei a regex acima com os nomes que indicou e também a {{Bullet}} (resta descobrir qual é o &xxxx). Helder 16h23min de 2 de setembro de 2012 (UTC)
De acordo com esta tabela de símbolos em HTML, &bull;, &#8226; e &#x2022; resultam em •. Helder 15h36min de 8 de setembro de 2012 (UTC)

Agora q reparei, o ** só funciona se for no campo |list1=, se for no |list2= ou outros não funciona. Fiz o teste com a Predefinição:CPLP q vc usou como exemplo pra alteração e é isso mesmo. Sabe pq? Rjclaudio msg 16h08min de 4 de setembro de 2012 (UTC)

Ainda não sei o motivo, mas talvez tenha relação com as mudanças feitas recentemente lá na enwiki por causa de certo problema causado pelas alterações anteriores. Helder 21h57min de 4 de setembro de 2012 (UTC)

──── O problema não tem a ver com o CSS. Alguma coisa (o MW ou uma das predefinições) está causando um problema semântico neste exemplo, pois o HTML do primeiro grupo é diferente do dos demais. Compare:

Primeiro
(uma lista, com uma sublista)
Segundo/Terceiro
(três listas)
<ul>
    <li>A
        <ul>
            <li>A1</li>
            <li>A2</li>
        </ul>
    </li>
    <li>B</li>
</ul>
<ul>
    <li>A</li>
</ul>
<ul>
    <li>A1</li>
    <li>A2</li>
</ul>
<ul>
    <li>B</li>
</ul>

Falta descobrir o motivo disso... Helder 19h33min de 15 de setembro de 2012 (UTC)

Informei no bugzilla:40274 uma esquisitice do MW ao lidar com quebras de linha em tabelas. Acredito que ela seja a causa do problema. Parece que se colocar mais algumas quebras de linha na {{Navbox/core}} vai funcionar. Helder 19h33min de 15 de setembro de 2012 (UTC)
Já editei lá para corrigir o bug, e as predefs q estavam dando erro agora estão funcionando direito. Já posso voltar a rodar o awb. Rjclaudio msg 01h50min de 16 de setembro de 2012 (UTC)
A Predefinição:Navbox subgroup também já foi corrigida, para que as listas do Portal:Conteúdo destacado ficassem semanticamente corretas. Helder 23h50min de 4 de novembro de 2012 (UTC)

Fui editar uma predefinição e percebi que a classe "hnum" não está implementada. Não há a pretensão de acrescentar a classe ao Common.css? Cainã Marques 03h27min de 18 de junho de 2013 (UTC)

Mas já está lá no MediaWiki:Common.css. Onde testou e o que aconteceu? Helder 11h30min de 18 de junho de 2013 (UTC)
Desculpa Heder, não sabia que deveria ser utilizada conjuntamente com a "hlist". Está funcionando perfeitamente. Inclusive melhor que na anglófona, que atualmente funciona apenas na "list1". Cainã Marques 15h22min de 18 de junho de 2013 (UTC)

Além disso, a classe rellink é realmente necessária? Seu estilo é o mesmo da dablink e acredito que nunca será necessário diferenciá-las. Afinal, servem para o mesmo elemento textual (hatnotes). Cainã Marques 03h41min de 18 de junho de 2013 (UTC)

Como já foi dito, as duas classes tem significados (semântica) diferentes (mas isso não impede que tenham a mesma aparência, como é atualmente). Helder 11h30min de 18 de junho de 2013 (UTC)

Listas simples (sem marcadores/bullets)Editar

A Dianakc nos chamou a atenção para o fato de que a classe plainlist não estava funcionando, e como ela é necessária para que possamos incentivar o uso de, digamos,

{{Lista simples|
* [[teste]]
* [[exemplo]]
* [[fim]]
}}
ou
<div class="plainlist">
* [[teste]]
* [[exemplo]]
* [[fim]]
</div>

nos lugares onde hoje é usado

[[teste]]<br />[[exemplo]]<br />[[fim]]

atendi o pedido inserindo no MediaWiki:Common.css o código que é necessário para que isso funcione. Helder.wiki (discussão) 11h41min de 20 de junho de 2014 (UTC)