<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Geovana Ribeiro(AKA Raveenita)</title>
    <description>The latest articles on Forem by Geovana Ribeiro(AKA Raveenita) (@raveenita).</description>
    <link>https://forem.com/raveenita</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F233426%2Fbbef0ff3-2cea-4bd3-b854-a283df2d37d5.jpg</url>
      <title>Forem: Geovana Ribeiro(AKA Raveenita)</title>
      <link>https://forem.com/raveenita</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/raveenita"/>
    <language>en</language>
    <item>
      <title>Garantindo a proteção de dados financeiros com PCI-DSS</title>
      <dc:creator>Geovana Ribeiro(AKA Raveenita)</dc:creator>
      <pubDate>Sun, 05 Nov 2023 13:53:04 +0000</pubDate>
      <link>https://forem.com/raveenita/garantindo-a-protecao-de-dados-financeiros-com-pci-dss-4gbi</link>
      <guid>https://forem.com/raveenita/garantindo-a-protecao-de-dados-financeiros-com-pci-dss-4gbi</guid>
      <description>&lt;p&gt;O &lt;strong&gt;Padrão de Segurança de Dados da Indústria de Cartões de Pagamento&lt;/strong&gt; ou &lt;strong&gt;PCI-DSS (Payment Card Industry Data Security Standard)&lt;/strong&gt; foi criado a partir da união das principais bandeiras de cartão de crédito (American Express, Visa, Mastercard) para definir um padrão de segurança para o mercado. &lt;/p&gt;

&lt;h2&gt;
  
  
  O que é a certificação PCI DSS?
&lt;/h2&gt;

&lt;p&gt;A certificação PCI DSS visa definir &lt;strong&gt;regras e requisitos rígidos&lt;/strong&gt; para garantir a proteção de informações sobre cartões em todas as transações online.&lt;/p&gt;

&lt;p&gt;Essa auditoria deve ser contratada anualmente pelas empresas que armazenam ou transmitem dados de cartão de crédito dos clientes. Dessa forma, um auditor irá realizar a auditoria em todo o ambiente para certificar-se que a empresa está segura. Caso a organização cumpra todos os pré requisitos, ela é aprovada pela certificação &lt;strong&gt;PCI DSS&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Todas a empresas precisam realizar essa certificação?
&lt;/h2&gt;

&lt;p&gt;Empresas que utilizam de gateways de pagamento, como &lt;a href="https://m.pagseguro.uol.com.br/selo/pci/index.html?_rnt=dd#rmcl"&gt;pagseguro&lt;/a&gt; ou &lt;a href="https://www.mercadopago.com.br/developers/pt/docs/security/pci"&gt;mercadopago&lt;/a&gt; não precisam realizar essa auditoria, pois os dados sensíveis não são lidados diretamente por ela, mas sim por um terceiro, que muitas vezes já cumprem este requerimento.&lt;/p&gt;

&lt;p&gt;Caso a empresa realize o armazenamento e processamento de pagamentos online em sua própria infraestrutura, deve ser realizada a certificação PCI DSS para garantir a segurança do ambiente e dos dados de seus clientes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quais são os requisitos para a certificação PCI DSS?
&lt;/h2&gt;

&lt;p&gt;Para que uma empresa esteja apta a certificação PCI DSS, ela deve cumprir os seguintes requisitos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Realizar análises de vulnerabilidade trimensais ou sempre que ocorrer alguma mudança.&lt;/li&gt;
&lt;li&gt;Realizar pentest interno e externo&lt;/li&gt;
&lt;li&gt;Corrigir todas as vulnerabilidades de &lt;strong&gt;nível alto&lt;/strong&gt; ou &lt;strong&gt;risco.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Não deve existir nenhuma vulnerabilidade com o score 4, com base no CVSS (&lt;strong&gt;&lt;a href="https://www.first.org/cvss/"&gt;Common Vulnerability Scoring System&lt;/a&gt;)&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Como posso certificar minha empresa?
&lt;/h2&gt;

&lt;p&gt;Caso você não utilize um gateway terceirizado de pagamento que já atende todos os pré-requisitos solicitados pela PCI DSS, você deve seguir os &lt;a href="https://www.pci.org/PCI/PCI-Certification/Personnel/becoming-certified.aspx"&gt;procedimentos para certificação&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>security</category>
      <category>compliance</category>
    </item>
    <item>
      <title>Sobrevivência para devs cansados - Parte 1</title>
      <dc:creator>Geovana Ribeiro(AKA Raveenita)</dc:creator>
      <pubDate>Sat, 25 Mar 2023 11:34:29 +0000</pubDate>
      <link>https://forem.com/raveenita/sobrevivencia-para-devs-cansados-parte-i-25d7</link>
      <guid>https://forem.com/raveenita/sobrevivencia-para-devs-cansados-parte-i-25d7</guid>
      <description>&lt;p&gt;Saudações, devs piratas dos mares abertos! 🏴‍☠️🤘🏼&lt;/p&gt;

&lt;p&gt;Realizei no mês passado um treinamento de sobrevivência básico na selva, através do &lt;a href="https://overborder.com.br/"&gt;Overborder Rescue&lt;/a&gt;, e foi incrível como os aprendizados ressoaram em mim no ambiente de trabalho. &lt;/p&gt;

&lt;p&gt;Resolvi traduzir essa experiência dentre outras, numa série que chamarei de “tantantan para devs cansados”, trazendo um pouco de sabedoria e outras práticas que me auxiliam no meu dia a dia como desenvolvedora e como espírito encarnado. Essa é a parte um!&lt;/p&gt;

&lt;p&gt;Espero que gostem. Irei atualizar esse índice conforme novos forem surgindo =)&lt;/p&gt;

&lt;h2&gt;
  
  
  Outros artigos desta série:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Sobrevivência para devs cansados - Parte 1 (Você está aqui!)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🏕️ Introdução
&lt;/h2&gt;

&lt;p&gt;A sobrevivência vai muito além de superar a escassez ou um desastre natural. &lt;/p&gt;

&lt;p&gt;Ela nos apresenta a essência &lt;strong&gt;sobre viver.&lt;/strong&gt; Um chamado para o &lt;strong&gt;desejo de perdurar.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Se não acendemos essa chama inata em nosso coração, não estamos &lt;strong&gt;sobre vivendo, apenas existindo.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Quando acendemos essa chama, uma sensação de segurança e confiança desperta em nós, pois nos colocamos como guardiões de nossas vidas, assim como das pessoas ao nosso redor. &lt;/p&gt;

&lt;p&gt;Sobreviver nos leva ao núcleo de nossos instintos e de nossa humanidade.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎖️A Sigla ESAON
&lt;/h2&gt;

&lt;p&gt;A sigla &lt;strong&gt;ESAON&lt;/strong&gt; está presente no exército militar e no corpo de bombeiros. Este protocolo no guia diante de uma situação onde estejamos perdidos numa floresta:&lt;/p&gt;

&lt;p&gt;O significado de cada letra é:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[E]stacionar:&lt;/strong&gt; Ao notar que está perdido, ao invés de continuar caminhando sem rumo, apenas estacione e poupe seus recursos (corpo, mente)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[S]entar:&lt;/strong&gt; Repouse por alguns minutos, tendo em vista que você andou por muito tempo e está cansado.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[A]limentar:&lt;/strong&gt; Dê a seu cérebro e a si um pouco de tranquilidade. Coma algo para dizer ao seu corpo que está tudo bem e aumentar sua saciedade.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[O]rientar:&lt;/strong&gt; Retome as atividades e busque refazer o caminho mentalmente, se lembrando de qual direção veio e para onde vai em seguida.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[N]avegar:&lt;/strong&gt; Após ter mapeado bem os próximos passos, meta marcha e que a sorte esteja ao seu favor!&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💻 ESAON orientada a devs cansados
&lt;/h2&gt;

&lt;p&gt;Após retomar do curso, realize o experimento de aplica-las no dia a dia do trabalho e acabei adaptando alguns termos:&lt;/p&gt;

&lt;h3&gt;
  
  
  [E]stacionar
&lt;/h3&gt;

&lt;p&gt;Ao se sentir perdido, pare de bater a cabeça no que está fazendo. Esse é o conceito de estacionar: poupar energia mental num problema onde não estamos progredindo em sua resolução.&lt;/p&gt;

&lt;h3&gt;
  
  
  [S]air
&lt;/h3&gt;

&lt;p&gt;É a instrução oposta de sentar, pois já passamos o dia inteiro sentados nessa vida sedentária de desenvolvedor(a). Aproveite para levar seu cachorro para passear, pegar sol ou tomar um café. Alongue seu corpo ou simplesmente movimente-se!&lt;/p&gt;

&lt;h3&gt;
  
  
  [A]limentar
&lt;/h3&gt;

&lt;p&gt;Dê a seu cérebro um pouco de combustível: leia um artigo sobre algum assunto relacionado ao problema em que está enfrentando. Tenha as ferramentas necessárias para lidar com grandes tragédias!&lt;/p&gt;

&lt;h3&gt;
  
  
  [O]rientar
&lt;/h3&gt;

&lt;p&gt;Consulte fóruns e tudo o que já faz normalmente para corrigir erros, mas agora com uma mentalidade diferente: você está no meio de uma mata. As vezes é preciso abrir seus próprios caminhos!&lt;/p&gt;

&lt;h3&gt;
  
  
  [N]avegar
&lt;/h3&gt;

&lt;p&gt;Depure o código, como se estivesse literalmente cortando toda a vegetação a sua frente. Olhe para o problema como um território totalmente desconhecido e fascinante, porém hostil e cheio de armadilhas. Assim como estar em contato com a natureza também é. Confie em seus instintos!&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Esse protocolo vem sendo um guia para cenários catastróficos (na minha cabeça), ancorando minha firmeza ao lidar com situações onde o desconhecido muitas vezes desperta gatilhos e sensações negativas.&lt;/p&gt;

&lt;p&gt;Agora que vocês já possuem essa instrução, é necessário a prática! Para entender como isso ressoa em sua vida profissional e pessoal.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Me siga para acompanhar as próximas partes deste post e os demais artigos da série &lt;strong&gt;“Para devs cansados”.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;That’s all folks!&lt;/strong&gt; 🏴‍☠️&lt;/p&gt;

</description>
    </item>
    <item>
      <title>💻 Configurando o Ubuntu para acessar a deep web</title>
      <dc:creator>Geovana Ribeiro(AKA Raveenita)</dc:creator>
      <pubDate>Sat, 25 Feb 2023 03:42:20 +0000</pubDate>
      <link>https://forem.com/raveenita/configurando-o-ubuntu-para-acessar-a-deep-web-20ee</link>
      <guid>https://forem.com/raveenita/configurando-o-ubuntu-para-acessar-a-deep-web-20ee</guid>
      <description>&lt;p&gt;Saudações, cyber piratas 🏴‍☠️&lt;/p&gt;

&lt;p&gt;Resolvi compartilhar como configurar seu navegador preferido no &lt;a href="https://ubuntu.com/download" rel="noopener noreferrer"&gt;Ubuntu&lt;/a&gt; para acessar qualquer site da &lt;a href="https://pt.wikipedia.org/wiki/Deep_web_e_surface_web" rel="noopener noreferrer"&gt;deep web&lt;/a&gt; de forma privada, sem a necessidade de instalar o &lt;a href="https://www.torproject.org/download/" rel="noopener noreferrer"&gt;Tor Browser&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Segue o fio:&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o tor e proxychains
&lt;/h2&gt;

&lt;p&gt;Primeiramente, instale os pacotes &lt;strong&gt;proxychains&lt;/strong&gt; e o &lt;strong&gt;tor:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;sudo&lt;/span&gt; &lt;span class="nx"&gt;apt&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="nx"&gt;tor&lt;/span&gt; &lt;span class="nx"&gt;proxychains&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E depois inicie o serviço do tor, através do comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;sudo&lt;/span&gt; &lt;span class="nx"&gt;service&lt;/span&gt; &lt;span class="nx"&gt;tor&lt;/span&gt; &lt;span class="nx"&gt;start&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configurando o arquivo proxychains.conf
&lt;/h2&gt;

&lt;p&gt;Abra o arquivo &lt;strong&gt;/etc/proxychains&lt;/strong&gt; com o &lt;strong&gt;&lt;a href="https://www.nano-editor.org/" rel="noopener noreferrer"&gt;nano&lt;/a&gt;:&lt;/strong&gt;, um editor de texto muito utilizado no Linux:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;sudo&lt;/span&gt; &lt;span class="nx"&gt;nano&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;proxychains&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;conf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E abaixo da linha &lt;strong&gt;socks4,&lt;/strong&gt; informaremos que *&lt;strong&gt;*o protocólo **socks5&lt;/strong&gt; também funcionará com a &lt;strong&gt;porta 9050&lt;/strong&gt;, utilizada pelo tor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;&lt;span class="p"&gt;socks4 127.0.0.1 90250
&lt;/span&gt;&lt;span class="gi"&gt;+ socks5 127.0.0.1 90250
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No ínicio do arquivo, comentaremos a linha &lt;strong&gt;strict_chain&lt;/strong&gt; e descomentaremos a linha &lt;strong&gt;dynamic_chain&lt;/strong&gt;, que define a forma na qual os proxys serão tratados. Desta forma, caso algum proxy esteja offline, será pulado.&lt;/p&gt;

&lt;p&gt;Feito isso, podemos fechar o arquivo com &lt;strong&gt;CTRL + X&lt;/strong&gt; e apertar &lt;strong&gt;Y&lt;/strong&gt; para &lt;strong&gt;salvar as alterações.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No final, seu arquivo deve ficar parecido com:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;proxychains.conf&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# proxychains.conf  VER 3.1&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#        HTTP, SOCKS4, SOCKS5 tunneling proxifier with DNS.&lt;/span&gt;
&lt;span class="c"&gt;#   &lt;/span&gt;

&lt;span class="c"&gt;# The option below identifies how the ProxyList is treated.&lt;/span&gt;
&lt;span class="c"&gt;# only one option should be uncommented at time,&lt;/span&gt;
&lt;span class="c"&gt;# otherwise the last appearing option will be accepted&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
dynamic_chain
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;# Dynamic - Each connection will be done via chained proxies&lt;/span&gt;
&lt;span class="c"&gt;# all proxies chained in the order as they appear in the list&lt;/span&gt;
&lt;span class="c"&gt;# at least one proxy must be online to play in chain&lt;/span&gt;
&lt;span class="c"&gt;# (dead proxies are skipped)&lt;/span&gt;
&lt;span class="c"&gt;# otherwise EINTR is returned to the app&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#strict_chain&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;# Strict - Each connection will be done via chained proxies&lt;/span&gt;
&lt;span class="c"&gt;# all proxies chained in the order as they appear in the list&lt;/span&gt;
&lt;span class="c"&gt;# all proxies must be online to play in chain&lt;/span&gt;
&lt;span class="c"&gt;# otherwise EINTR is returned to the app&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#random_chain&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;# Random - Each connection will be done via random proxy&lt;/span&gt;
&lt;span class="c"&gt;# (or proxy chain, see  chain_len) from the list.&lt;/span&gt;
&lt;span class="c"&gt;# this option is good to test your IDS :)&lt;/span&gt;

&lt;span class="c"&gt;# Make sense only if random_chain&lt;/span&gt;
&lt;span class="c"&gt;#chain_len = 2&lt;/span&gt;

&lt;span class="c"&gt;# Quiet mode (no output from library)&lt;/span&gt;
&lt;span class="c"&gt;#quiet_mode&lt;/span&gt;

&lt;span class="c"&gt;# Proxy DNS requests - no leak for DNS data&lt;/span&gt;
proxy_dns 

&lt;span class="c"&gt;# Some timeouts in milliseconds&lt;/span&gt;
tcp_read_time_out 15000
tcp_connect_time_out 8000

&lt;span class="c"&gt;# ProxyList format&lt;/span&gt;
&lt;span class="c"&gt;#       type  host  port [user pass]&lt;/span&gt;
&lt;span class="c"&gt;#       (values separated by 'tab' or 'blank')&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#        Examples:&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#               socks5  192.168.67.78   1080    lamer   secret&lt;/span&gt;
&lt;span class="c"&gt;#       http    192.168.89.3    8080    justu   hidden&lt;/span&gt;
&lt;span class="c"&gt;#       socks4  192.168.1.49    1080&lt;/span&gt;
&lt;span class="c"&gt;#           http    192.168.39.93   8080    &lt;/span&gt;
&lt;span class="c"&gt;#       &lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#       proxy types: http, socks4, socks5&lt;/span&gt;
&lt;span class="c"&gt;#        ( auth types supported: "basic"-http  "user/pass"-socks )&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;ProxyList]
&lt;span class="c"&gt;# add proxy here ...&lt;/span&gt;
&lt;span class="c"&gt;# meanwile&lt;/span&gt;
&lt;span class="c"&gt;# defaults set to "tor"&lt;/span&gt;
socks4 127.0.0.1 9050
socks5 127.0.0.1 9050
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configurando o navegador
&lt;/h2&gt;

&lt;p&gt;Agora configuraremos seu navegador padrão (browser) para utilizar o Tor. &lt;/p&gt;

&lt;h3&gt;
  
  
  Google Chrome
&lt;/h3&gt;

&lt;p&gt;Abra o &lt;a href="https://www.google.com/intl/pt-BR/chrome/" rel="noopener noreferrer"&gt;Google Chrome&lt;/a&gt;, vá até a sessão &lt;strong&gt;Settings (Configurações)&lt;/strong&gt; e busque por &lt;strong&gt;Proxy.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As opções de configuração de &lt;strong&gt;Network (Rede)&lt;/strong&gt;  do Ubuntu será aberta. Clique em &lt;strong&gt;Network Proxy&lt;/strong&gt; e selecione a opção &lt;strong&gt;Manual&lt;/strong&gt;. Preencha o campo &lt;strong&gt;Socks Hosts&lt;/strong&gt; com &lt;strong&gt;127.0.0.1&lt;/strong&gt; e defina a porta como &lt;strong&gt;9050&lt;/strong&gt;, a mesma realizada configuração realizada no arquivo &lt;strong&gt;proxychains.conf.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0w1ocw1g22nwoh4nox4m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0w1ocw1g22nwoh4nox4m.png" alt="Tela de configurações de rede aberta no Mozilla Firefox, com a opção " width="720" height="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Confira as informações e feche a janela.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mozilla Firefox
&lt;/h3&gt;

&lt;p&gt;Abra o &lt;a href="https://www.mozilla.org/pt-BR/firefox/" rel="noopener noreferrer"&gt;Firefox&lt;/a&gt;, vá até a sessão &lt;strong&gt;Settings (Configurações)&lt;/strong&gt; e busque por &lt;strong&gt;Proxy.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvscgxiy604zkd2spk5gr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvscgxiy604zkd2spk5gr.png" alt="Tela da aba Settings, contendo um botão " width="704" height="154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clique no botão &lt;strong&gt;Settings&lt;/strong&gt; e  selecione a opção &lt;strong&gt;Manual&lt;/strong&gt;. Preencha o campo &lt;strong&gt;Socks Hosts&lt;/strong&gt; com &lt;strong&gt;127.0.0.1&lt;/strong&gt; e defina a porta como &lt;strong&gt;9050&lt;/strong&gt;, a mesma realizada configuração realizada no arquivo &lt;strong&gt;proxychains.conf.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aqui selecionaremos as opções “&lt;strong&gt;SOCKS v5&lt;/strong&gt;” e “&lt;strong&gt;Proxy DNS when using SOCKS v5&lt;/strong&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fotiqrfwj7j8kutwpb7af.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fotiqrfwj7j8kutwpb7af.png" alt="Tela de configurações de rede aberta no Mozilla Firefox, com a opção " width="773" height="821"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E por fim, clicaremos em &lt;strong&gt;OK&lt;/strong&gt; para salvar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Acessando a deep web
&lt;/h2&gt;

&lt;p&gt;Acesse o site &lt;a href="https://ipaddress.my/" rel="noopener noreferrer"&gt;https://ipaddress.my/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvosfth7uvl9zsyk42a2t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvosfth7uvl9zsyk42a2t.png" alt="Tela do site https://ipaddress.my, contendo o IP originado da Holanda" width="800" height="597"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Observe que o IP acima corresponde a Amstardem, na Holanda, mas eu moro no Brasil! :o&lt;/p&gt;

&lt;p&gt;Isso significa que nosso proxy deu certo e que podemos nos aventurar na deep web.&lt;/p&gt;

&lt;p&gt;Por fim, tente acessar &lt;a href="http://qrtitjevs5nxq6jvrnrjyz5dasi3nbzx24mzmfxnuk2dnzhpphcmgoyd.onion/" rel="noopener noreferrer"&gt;http://qrtitjevs5nxq6jvrnrjyz5dasi3nbzx24mzmfxnuk2dnzhpphcmgoyd.onion/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se algo parecido com um pug muy loko brotar na sua tela, você está dentro! =)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Forqloues8pw3pwqhwg8o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Forqloues8pw3pwqhwg8o.png" alt="Tela inicial do " width="800" height="796"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's all folks! 🏴‍☠️&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>🚀The one secret of web performance</title>
      <dc:creator>Geovana Ribeiro(AKA Raveenita)</dc:creator>
      <pubDate>Fri, 14 Aug 2020 11:16:24 +0000</pubDate>
      <link>https://forem.com/raveenita/the-one-secret-of-web-performance-433e</link>
      <guid>https://forem.com/raveenita/the-one-secret-of-web-performance-433e</guid>
      <description>&lt;p&gt;I have been seen many articles on the internet about web performance and they have titles like “Top 5 secrets to boost your PHP performance” and “15 tips to improve the performance of your site” and yeah, they are really helpful, but we need to stop looking for hacks and quick tips and start to look deeper for what is performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why are you looking for performance?
&lt;/h2&gt;

&lt;p&gt;Your boss came with some explicit orders from the client to test the web performance of a project that you just finished recently.&lt;/p&gt;

&lt;p&gt;They are like “OMG, the SEO tool requires a good site performance. What we do??” And there is where you enter. You need to test your own site performance and is faced with something like that:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nxe4cG4_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/ckkmlq8s8k7ifvymzjjt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nxe4cG4_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/ckkmlq8s8k7ifvymzjjt.png" alt="A report from Google PageSpeed Insights" width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This really hurts, don’t?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You have a long way to go now. And to think that you would never touch this site again…&lt;/p&gt;

&lt;h2&gt;
  
  
  What is performance?
&lt;/h2&gt;

&lt;p&gt;If you are a runner, you always do your best to improve yourself. You don’t just buy a new pair of shoes and think that you’re the fastest runner on the planet.&lt;/p&gt;

&lt;p&gt;How the development cycle of your applications is? Do you pay attention to what decisions you take off while programming or go back to any part of your code that doesn’t really like the implementation?&lt;/p&gt;

&lt;p&gt;Do you like refactoring your code and always are searching for ways to increase the quality or you just make some configurations in your webserver to cache faster and that’s enough?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Performance is a culture.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When you code something that works but don’t stop to overthink how that can affect your application in production scenarios, this can blow off all those articles about performance.&lt;/p&gt;

&lt;p&gt;These articles can’t help you with structural issues. This is something much deeper. For that, you need to understand that programming language you are coding and the best solution gave by her based on your knowledge about data structured and requirements of the project.&lt;/p&gt;

&lt;p&gt;Performance can be hard. There so many skills involved, like browser and network performance, web server, and… I’m getting sleepy.&lt;/p&gt;

&lt;p&gt;Doing this, you can apply performance culture in every project and learn a lot with this. I know, sometimes can be really boring, but when you understand why you are doing this, became so much acceptable (I say this because still boring, but now you know that you are saving the user’s life and 3G, for sure).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I can say for myself, performance can be a topic really interesting.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;🎯 CHALLENGES&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose one project and start to analyze it. There is something that can be done in a different way?&lt;/li&gt;
&lt;li&gt;Take metrics from different methods in a programming language that do similar things (a for loop, while and forEach), compare them and find the best one for your implementation&lt;/li&gt;
&lt;li&gt;Code the way you know first and then spend some time refactoring your code&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Acessibilidade: O guia para uma web universal</title>
      <dc:creator>Geovana Ribeiro(AKA Raveenita)</dc:creator>
      <pubDate>Sat, 07 Dec 2019 14:41:15 +0000</pubDate>
      <link>https://forem.com/raveenita/acessibilidade-o-guia-para-uma-web-universal-pfk</link>
      <guid>https://forem.com/raveenita/acessibilidade-o-guia-para-uma-web-universal-pfk</guid>
      <description>&lt;p&gt;Muito me encanta a internet. Quando me aventurei neste universo pela primeira vez, era apenas uma padawan. Ela não era tão vasta e rica como hoje e muito dos conceitos que temos atualmente não eram nem sequer uma preocupação, afinal, a web consistia apenas de links envoltos de layouts tabelados e cores extremamente toscas.&lt;/p&gt;

&lt;p&gt;Hoje em dia tudo é diferente e a internet está disponível para grande parte da população, mas a acessibilidade &lt;strong&gt;ainda&lt;/strong&gt; não.&lt;/p&gt;

&lt;p&gt;Quando consegui meu primeiro emprego como desenvolvedora front-end junior, não conhecia nenhum destes conceitos. Até que um dia ligaram na agência em que trabalhava procurando pelo meu chefe, pois um cliente deficiente visual de um site de leilões online tinha ligado e reportado que no antigo site era possível navegar no site através dos leitores de tela, mas no atual não. O novo site não tinha sido desenvolvido levando a acessibilidade em mente.&lt;/p&gt;

&lt;p&gt;Aquilo de certa forma me marcou. Até aquele em dia em questão, não fazia ideia de como pessoas portadoras de deficiência faziam para acessar a internet e muito menos como poderia transformar sua experiência. Me senti responsabilizada por impedir que outras ligações como aquela ocorressem. Inevitavelmente, aprendi outros conceitos muito importantes ao longo do caminho e que se complementam: &lt;a href="https://developers.google.com/web/fundamentals/design-and-ux/principles?hl=pt-BR" rel="noopener noreferrer"&gt;usabilidade&lt;/a&gt; e &lt;a href="https://developers.google.com/web/fundamentals/performance/why-performance-matters" rel="noopener noreferrer"&gt;performance web&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Estudar e aplicar esses conceitos me fizeram uma desenvolvedora melhor e mais &lt;code&gt;empática&lt;/code&gt;. Foi quando entendi que a internet é universal e deve ser desenvolvida para &lt;strong&gt;todos&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Após finalizar  as próximas seções, você está apto à:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;codificar de forma semântica e otimizada para leitores de tela e navegadores;&lt;/li&gt;
&lt;li&gt;escrever conteúdo de forma mais simples e compreensível;&lt;/li&gt;
&lt;li&gt;tornar seu site mais performático;&lt;/li&gt;
&lt;li&gt;melhorar o posicionamento em mecanismos de buscas;&lt;/li&gt;
&lt;li&gt;aplicar conceitos de usabilidade em projetos pessoais e profissionais;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📗 Código semântico
&lt;/h2&gt;

&lt;p&gt;Nos primórdios da web, o &lt;code&gt;HTML (Hypertext Markup Language)&lt;/code&gt; era uma terra sem lei. Os elementos &lt;code&gt;table&lt;/code&gt; e &lt;code&gt;div&lt;/code&gt; eram como pais de santo que faziam todo tipo de milagre. Loja virtual? Taca uma tabela aí. E-mail marketing? Tabelas fazem todo o sentido, é claro! (neste caso em específico ele permanece até hoje, infelizmente). &lt;/p&gt;

&lt;p&gt;Era nesse caos em que viviamos até o surgimento do &lt;code&gt;HTML5&lt;/code&gt;. Ele veio pra revolucionar a forma como escrevemos páginas web, trazendo semântica para cada novo elemento inserido e significado a informação.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Apesar disso, a semântica reside na web desde sempre. Elementos como os cabeçalhos &lt;code&gt;(h1, h2...h6)&lt;/code&gt; e &lt;code&gt;buttons&lt;/code&gt; estão desde a primeira especificação do HTML.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Como dito anteriormente, não existiam tags que diferenciassem um &lt;code&gt;header&lt;/code&gt; de um &lt;code&gt;footer&lt;/code&gt;, ou dissessem ao navegador que uma página possui um menu de navegação, mas hoje com a nova especificação do HTML5, elas existem!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F9dlqph9744jnzmntmy0y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F9dlqph9744jnzmntmy0y.png" alt="Marcação antiga vs Marcação com HTML5"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Legenda: marcação antiga VS marcação atual com HTML5&lt;/p&gt;

&lt;p&gt;Com as novas tags do HTML5, podemos demarcar quando uma sessão de uma página é um &lt;code&gt;footer&lt;/code&gt;, &lt;code&gt;header&lt;/code&gt;, &lt;code&gt;nav&lt;/code&gt;ou mesmo comportará um artigo. Desta forma, o navegador também terá conhecimento do tipo de conteúdo que ele está renderizando.&lt;/p&gt;

&lt;h3&gt;
  
  
  Listas ordenadas e não-ordenadas
&lt;/h3&gt;

&lt;p&gt;Um erro comum que cometemos é esquecermos da existência das listas ordenadas. Não é apenas uma questão de escolher entre  &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt; e &lt;code&gt;&amp;lt;ol&amp;gt;&lt;/code&gt; e sim sobre qual atende melhor a necessidade do projeto.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;ul class="breadcrumbs&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a href="/home"&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;strong class="current&amp;gt;Contato&amp;lt;/strong&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Semânticamente, seria melhor representado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;ol class="breadcrumbs&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a href="/home"&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;strong class="current&amp;gt;Contato&amp;lt;/strong&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ol&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Idioma do documento com &lt;code&gt;[lang]&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Nas versões anteriores ao HTML5 era possível definir o conteúdo do documento através da metatag nativa.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;meta http-equiv="Content-Language" content="pt-br"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O atributo &lt;code&gt;lang&lt;/code&gt;foi introduzido no HTML5 e informa ao navegador qual o idioma do documento.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;html lang="pt-br"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ele pode ser usado como atributo em qualquer elemento, informando a linguagem do conteúdo demarcado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;p lang="en-us"&amp;gt;
    Augusta Ada King, Countess of Lovelace was an English mathematician and writer, chiefly known for her work on Charles Babbage's proposed mechanical general-purpose computer, the Analytical Engine. She was the first to recognise that the machine had applications beyond pure calculation, and published the first algorithm intended to be carried out by such a machine. As a result, she is sometimes regarded as the first to recognise the full potential of a "computing machine" and one of the first computer programmers.
&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Gerenciando visibilidade com &lt;code&gt;[hidden]&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;O atributo &lt;code&gt;hidden&lt;/code&gt; é uma alternativa semântica ao &lt;code&gt;display: none&lt;/code&gt;.&lt;br&gt;
Para tornarmos nosso desenvolvimento mais otimizado para leitores de tela, precisamos fixar o seguinte conceito: tudo o que fazemos no CSS é puramente visual. Nunca estaremos atingindo tecnologias assistivas com folhas de estilo. Por isso o CSS é o lugar ideal para colocar imagens decorativas e firulas criadas pelos designers (que particularmente, eu adoro).&lt;/p&gt;
&lt;h3&gt;
  
  
  Navegação sequencial pelo teclado com &lt;code&gt;[tabindex]&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Uma página acessível deve poder ser navegada unicamente através do teclado. O atributo &lt;code&gt;tabindex&lt;/code&gt; é muito útil neste quesito. Ele permite que controlemos a ordem dos elementos que serão navegados por meio da teclada &lt;code&gt;tab&lt;/code&gt;. Os valores aceitos para essa propriedade são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;[tabindex="1"]&lt;/code&gt; (&lt;strong&gt;valor positivo&lt;/strong&gt;): o elemento deve ser focável e que pode ser acessado através da navegação sequencial do teclado. O valor atribuído será a posição dentro da sequência;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;[tabindex="-1"]&lt;/code&gt; (&lt;strong&gt;valor negativo&lt;/strong&gt;): o elemento deve ser focável, mas não será acessível por meio da navegação sequencial, ou seja, não será acessado através da tecla &lt;code&gt;tab&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;[tabindex="0"]&lt;/code&gt; (&lt;strong&gt;zero&lt;/strong&gt;): o elemento deve ser focável, poderá ser acessado através da navegação sequencial, mas sua posição será definida pela ordem em que se encontra no código-fonte;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  💬 Descritivos em imagens com &lt;code&gt;[alt]&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Imagens são ilustrativas e esclarecedoras por si só, certo? (não entraremos no assunto obras de arte, no entanto). &lt;br&gt;
Claro, se você puder vê-las. Mas muita gente por aí não pode. &lt;/p&gt;

&lt;p&gt;O atributo &lt;code&gt;alt&lt;/code&gt; existe desde sempre no HTML e serve para fornecermos a descrição de uma mídia visual presente no documento.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;img src="https://http.cat/202" alt="Gatinho comendo de boca aberta"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Além de ser valiosa para leitores de tela, o atributo &lt;code&gt;alt&lt;/code&gt; é utilizado quando, por algum motivo, uma imagem não foi carregada na página. Pode ser um problema de conexão, o servidor na qual ela foi hospedada ficou fora do ar ou o usuário simplesmente desabilitou-as para ter uma experiência mais rápida.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  SVGs semânticos com &lt;code&gt;[title]&lt;/code&gt; e &lt;code&gt;[desc]&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;A internet não é composta só de imagens. Na verdade, uma das grandes evoluções da web foi o surgimento do SVG &lt;code&gt;Scalable Vector Graphics&lt;/code&gt;, tornando-a mais adaptável e leve.&lt;/p&gt;

&lt;p&gt;Assim como imagens, o SVG possui atributos que aumentam a acessibilidade de nossos vetores escaláveis: &lt;code&gt;[title]&lt;/code&gt; e &lt;code&gt;[desc]&lt;/code&gt;. Elas servem para informar um título ao nosso vetor e uma descrição mais detalhada do mesmo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;symbol id="icon-close" viewBox="0 26 100 48"&amp;gt;
    &amp;lt;title&amp;gt;Título do ícone&amp;lt;/title&amp;gt;
    &amp;lt;desc&amp;gt;Descritivo do ícone&amp;lt;/desc&amp;gt;
    &amp;lt;!-- &amp;lt;path&amp;gt;s and whatever other shapes in here --&amp;gt;  
  &amp;lt;/symbol&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Legendas e subtítulos com &lt;code&gt;&amp;lt;track&amp;gt;&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Com o HTML5 também é possível inserir arquivos de áudio e vídeo de forma nativa, sem a necessidade de plugins, utilizando as tags: &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; e &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt;. &lt;br&gt;
Além disso, ele também disponibiliza a tag &lt;code&gt;&amp;lt;track&amp;gt;&lt;/code&gt; que incorpora legendas e subtítulos em nosso arquivo de mídia, no formato WebVTT &lt;code&gt;(Web Video Text Tracks Format)&lt;/code&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Fala sério, a internet é &lt;strong&gt;demais&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;video controls autoplay&amp;gt;
  &amp;lt;source src="movie.mp4" type="video/mp4"&amp;gt;
  &amp;lt;track label="English Captions" kind="captions" srclang="eN" src="captions.vtt" default&amp;gt;
  &amp;lt;track label="Subtitulos en español" kind="captions" srclang="es" src="subs.vtt"&amp;gt;
&amp;lt;/video&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ♿️ WAI-ARIA
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;WAI-ARIA&lt;/strong&gt; &lt;code&gt;Especificação dos Aplicativos Ricos Acessíveis de Internet da Iniciativa para Acessibilidade da Web&lt;/code&gt; é um consórcio internacional, que define formas de tornar o conteúdo da web mais acessível para deficientes.&lt;/p&gt;

&lt;p&gt;Com a criação dessa especificação, ganhamos mais uma ferramenta dentro de nosso arsenal, sendo elas as chamadas &lt;code&gt;ARIA roles&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Roles&lt;/strong&gt; são alguns bytes de código adicionais ao nosso código padrão, que não machucam, nem mesmo aumentam o tempo de desenvolvimento, mas que em contrapartida trazem informações preciosas para leitores de tela.&lt;/p&gt;

&lt;p&gt;Digamos que por falta de conhecimento (ou bom senso), alguém crie um botão desta maneira:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div&amp;gt;I'm a button!&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Visualmente, isso não nos diz nada, certo? E adivinhem: para os leitores de tela e navegadores também não. A única evidência de que se trata de um botão é seu próprio texto, que em muitos casos, pode ser insuficiente.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div role="button"&amp;gt;I'm a button!&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Os &lt;strong&gt;roles&lt;/strong&gt; são atributos incorporados no próprio HTML que servem para explicitar o tipo de conteúdo que está sendo fornecido para leitores de tela. Existem diversos tipos de roles e na sessão sobre semântica podemos ver dois exemplos interessantes: &lt;strong&gt;banner&lt;/strong&gt; e &lt;strong&gt;content-info&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Roles devem ser incorporados em elementos que não fornecessem uma semântica padrão. Eles são redundantes em elementos nativos, como &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; e &lt;code&gt;&amp;lt;checkbox&amp;gt;&lt;/code&gt;, pois os mesmos já possuem as características que seriam fornecidas pelo atributo.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Talvez esse exemplo não pareça ser muito eficiente, afinal de contas, já existe um elemento &lt;code&gt;button&lt;/code&gt; que fornece essa semântica para nós.&lt;/p&gt;

&lt;p&gt;Vamos dar uma olhada num conhecido framework: nosso querido &lt;code&gt;boostrap&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="accordion" id="accordionExample"&amp;gt;
  &amp;lt;div class="card"&amp;gt;
    &amp;lt;div class="card-header" id="headingOne"&amp;gt;
      &amp;lt;h5 class="mb-0"&amp;gt;
        &amp;lt;button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne"&amp;gt;
          Grupo de itens colapsável #1
        &amp;lt;/button&amp;gt;
      &amp;lt;/h5&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample"&amp;gt;
      &amp;lt;div class="card-body"&amp;gt;
        Eu sou um body! #1
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div class="card"&amp;gt;
    &amp;lt;div class="card-header" id="headingTwo"&amp;gt;
      &amp;lt;h5 class="mb-0"&amp;gt;
        &amp;lt;button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo"&amp;gt;
          Grupo de itens colapsável #2
        &amp;lt;/button&amp;gt;
      &amp;lt;/h5&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample"&amp;gt;
      &amp;lt;div class="card-body"&amp;gt;
        Eu sou um body! #2
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div class="card"&amp;gt;
    &amp;lt;div class="card-header" id="headingThree"&amp;gt;
      &amp;lt;h5 class="mb-0"&amp;gt;
        &amp;lt;button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseThree" role="button" aria-expanded="false" aria-controls="collapseThree"&amp;gt;
          Grupo de itens colapsável #3
        &amp;lt;/button&amp;gt;
      &amp;lt;/h5&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample"&amp;gt;
      &amp;lt;div class="card-body"&amp;gt;
        Eu sou um body!#3
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse é o código padrão para inserir um &lt;code&gt;accordion&lt;/code&gt; em nossa página. Ele é composto inteiramente por elementos &lt;code&gt;div&lt;/code&gt; e possui um comportamento complexo. Para descrever tal comportamento em leitores de tela e tecnologias assistivas, são utilizadas as seguintes &lt;code&gt;roles&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;aria-labelledby:&lt;/code&gt; informa o ID do elemento correspondente ao rótulo;&lt;br&gt;
&lt;code&gt;aria-expanded:&lt;/code&gt; informa o estado atual do elemento colapsável;&lt;br&gt;
&lt;code&gt;aria-controls:&lt;/code&gt; informa qual o elemento sendo atingido pelo controle;&lt;/p&gt;

&lt;p&gt;A WAI-ARIA possui uma vasta documentação para implementação em diversos tipos de casos. Neste repositório do github podemos encontrar um &lt;a href="https://github.com/filipelinhares/WAI-ARIA-cheatsheet" rel="noopener noreferrer"&gt;WAI-ARIA cheatseet&lt;/a&gt; com todas as &lt;code&gt;roles&lt;/code&gt; possíveis para se utilizar durante o desenvolvimento.&lt;/p&gt;
&lt;h2&gt;
  
  
  🚥 Precisamos falar sobre Daltonismo
&lt;/h2&gt;

&lt;p&gt;Cores são muito bonitas e esclarecedoras, para quem pode enxergá-las. Mas alguns simplesmente não podem (não da maneira na qual enxergamos). Venho falar dos daltônicos, que compõem &lt;a href="http://www.daltonicos.com.br/daltonico/daltonismo.html" rel="noopener noreferrer"&gt;8,5% da população masculina mundial&lt;/a&gt; e também precisam que a internet seja desenvolvida para eles!&lt;/p&gt;

&lt;p&gt;Uma diretriz que resume a acessibilidade para daltônicos:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A cor não é usada como o único meio visual de transmissão de informações (Nível A) - &lt;a href="https://www.w3.org/WAI/WCAG21/quickref/?versions=2.0#qr-visual-audio-contrast-without-color" rel="noopener noreferrer"&gt;Web Content Accessibility Guidelines 2.0&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fnbu5ujm6hho0nqcz1yex.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fnbu5ujm6hho0nqcz1yex.jpg" alt="Motivo pelo qual daltônicos odeiam gráficos de pizza"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Legenda: Imagem com a mensagem “Razões pelas quais eu odeio gráfico de pizza”, e abaixo um gráfico de pizza com a legenda “porque eu sou daltônico”&lt;/p&gt;

&lt;p&gt;Segue algumas diretrizes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Não dependa apenas de cores para informar algum dado ao usuário. Utilize de rótulos e ícones para complementar a informação:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8r7qid9oeandk74w38tb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8r7qid9oeandk74w38tb.png" alt="Gráfico de pizza com rótulos"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Utilize mensagens de erro para transmitir feedback ao usuário:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fajetbd3au33o2yggykkv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fajetbd3au33o2yggykkv.png" alt="Validação de formulário apenas com cores VS Validação de formulário com cores, rótulos e ícones"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Não use apenas cores para diferenciar um link do resto do texto. Por padrão, o elemento &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; possui a propriedade &lt;code&gt;text-decoration:underline&lt;/code&gt;, que define um sublinhado para &lt;em&gt;hyperlinks&lt;/em&gt; e torna sua identificação independente da cor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbvvoah7806f45rs8zz50.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbvvoah7806f45rs8zz50.png" alt="Link com a cor destacada em azul VS Página em preto e branco, "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Legenda: Do lado esquerdo uma página com o link destacado em azul e do lado direito a mesma página em preto e branco, demonstrando que a cor não serve mais como um indicativo e que a informação de que é um &lt;em&gt;hyperlink&lt;/em&gt; se perde.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Existe muito mais sobre acessibilidade e daltonismo. Utilizei alguns exemplos do artigo &lt;a href="https://medium.com/acessibilito/acessibilidade-para-dalt%C3%B4nicos-casos-de-falha-e-sucesso-d76bf6e4261e" rel="noopener noreferrer"&gt;Acessibilidade para Daltônicos&lt;/a&gt; e recomendo fortemente sua leitura.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  🔗 Conteúdo
&lt;/h2&gt;

&lt;p&gt;Não é atoa que &lt;strong&gt;SEO&lt;/strong&gt; e &lt;strong&gt;semântica&lt;/strong&gt; são praticamente &lt;em&gt;bffs&lt;/em&gt;. Um código semântico e uma linguagem de fácil entendimento são essenciais para uma boa acessibilidade. E usabilidade. E SEO. E tudo.&lt;/p&gt;

&lt;p&gt;A verdade é que: seres humanos são extremamente inteligentes, possuem uma alta capacidade cognitiva, mas não gostam de pensar muito e odeiam linguagens complexas.&lt;/p&gt;

&lt;p&gt;Se comunicar de maneira simples faz toda a diferença quando não sabemos quem é o usuário - e dada as infinitas possibilidades - devemos tornar nosso conteúdo acessível, pensando que nosso avô de 86 anos pode estar acessando um site nosso.&lt;/p&gt;
&lt;h3&gt;
  
  
  Abreviações
&lt;/h3&gt;

&lt;p&gt;Caso seja possível, evite-as. Caso não seja, explique seu significado. Aplico essa premissa enquanto escrevo este artigo. &lt;br&gt;
Algumas maneiras de fazer isto:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Explicar o significado da abreviação logo após usá-la pela primeira vez. Na sessão sobre semãntica, pode notar que cito o HTML pela primeira vez e logo em seguida lhe entrego o significado da informação. O resultado será parecido com este: &lt;code&gt;HTML (Linguagem de Marcação de Hipertexto)&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Linkar a abreviação à uma página que explique sobre o conteúdo ou mesmo adicionar notas no rodapé, como nos livros!. Exemplo: &lt;a href="https://pt.wikipedia.org/wiki/HTML" rel="noopener noreferrer"&gt;HTML&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Utilizar a tag &lt;code&gt;&amp;lt;abbr&amp;gt;&lt;/code&gt; e aplicarmos em seu atributo &lt;code&gt;[title]&lt;/code&gt;a explicação referente à abreviação: Exemplo: HTML&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  📝 Formulários
&lt;/h2&gt;

&lt;p&gt;Acessibilidade em formulários é um tópico sensível. Afinal, se um usuário não sabe com exatidão o que precisa ser inputado, como ele irá fornecer qualquer tipo de informação ao nosso site?&lt;/p&gt;

&lt;p&gt;Pegaremos como exemplo um formulário de login que pede usuário e senha.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fm9d835lriii7pr0s2901.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fm9d835lriii7pr0s2901.png" alt="Formulário sem rótulo VS Formulário com rótulo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Qual das opções torna a ação do usuário mais clara? Tenho certeza que você respondeu a &lt;code&gt;segunda&lt;/code&gt;. Ela diz, implicitamente: sei que você pode ser meio leigo, logo estou me adiantando.&lt;/p&gt;

&lt;p&gt;Nosso site precisa ser um guia para o mais iniciante da internet. Se uma criança de 5 anos conseguir navegar por ele, estamos fazendo um bom trabalho.&lt;/p&gt;

&lt;p&gt;Segue algumas dicas para melhorar a acessibilidade de seus formulários:&lt;/p&gt;
&lt;h3&gt;
  
  
  Organização de formulários com &lt;code&gt;&amp;lt;fieldset&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;legend&amp;gt;&lt;/code&gt; e &lt;code&gt;&amp;lt;optgroup&amp;gt;&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Imagine uma página de cadastro onde o usuário precisa fornecer informações &lt;strong&gt;pessoais&lt;/strong&gt;, &lt;strong&gt;de cobrança e entrega&lt;/strong&gt; e de &lt;em&gt;login&lt;/em&gt; para acessar sua conta. Agora imagine que esse formulário não tivesse nenhum tipo de separação, sendo apenas uma linguiça gigante.&lt;/p&gt;

&lt;p&gt;O &lt;code&gt;&amp;lt;fieldset&amp;gt;&lt;/code&gt;serve para dividir nosso formulário em seções, tornando mais fácil a identificação dos diferentes tipos de dado que o usuário precisa fornecer. Sendo assim, teriamos um &lt;code&gt;&amp;lt;fieldset&amp;gt;&lt;/code&gt; para cada bloco de informação e usariamos o &lt;code&gt;&amp;lt;legend&amp;gt;&lt;/code&gt; para fornecer um título para cada uma dessas sessões.&lt;/p&gt;

&lt;p&gt;Também temos o elemento &lt;code&gt;&amp;lt;optgroup&amp;gt;&lt;/code&gt;, utilizado para agrupar elementos &lt;code&gt;&amp;lt;option&amp;gt;&lt;/code&gt;por categorias de dentro de um &lt;code&gt;select&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;select&amp;gt;
  &amp;lt;optgroup label="Front-end"&amp;gt;
    &amp;lt;option&amp;gt;HTML5&amp;lt;/option&amp;gt;
    &amp;lt;option&amp;gt;CSS3&amp;lt;/option&amp;gt;
    &amp;lt;option&amp;gt;Javascript&amp;lt;/option&amp;gt;
  &amp;lt;/optgroup&amp;gt; 
  &amp;lt;optgroup label="Back-end"&amp;gt;
    &amp;lt;option&amp;gt;Python&amp;lt;/option&amp;gt;
    &amp;lt;option&amp;gt;Node.JS&amp;lt;/option&amp;gt;
    &amp;lt;option&amp;gt;Ruby on Rails&amp;lt;/option&amp;gt;
  &amp;lt;/optgroup&amp;gt;
&amp;lt;/select&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Fornecendo orientações com &lt;code&gt;[placeholder]&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;O atributo &lt;code&gt;[placeholder]&lt;/code&gt; faz exatamente o que vimos no exemplo anterior. Ele fornece uma instrução ao usuário sobre que tipo de informação ele precisa preencher. Pode ser aplicado de algumas formas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;modo imperativo: &lt;code&gt;Insira sua usuário...&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;fornecer uma máscara padrão: &lt;code&gt;exemplo@seudominio.com.br&lt;/code&gt; ou &lt;code&gt;00/00/0000&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;sugerir através de respostas comuns: &lt;code&gt;Google, indicação de amigos, anúncios...&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Fornecendo rótulos com &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; e &lt;code&gt;[aria-labelledby]&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;A tag &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; serve para relacionar um elemento com um rótulo, através do atributo &lt;code&gt;[for]&lt;/code&gt; e passando o &lt;code&gt;ID&lt;/code&gt; do elemento.&lt;br&gt;
Outra forma de referenciar um rótulo ao elemento é através do atributo &lt;code&gt;[aria-labelledby]&lt;/code&gt;, inserido na própria tag de formulário.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;label for="password"&amp;gt;Senha:&amp;lt;/label&amp;gt;
&amp;lt;input name="password" type="password" placeholder="Insira sua senha..." aria-labelledby="password" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Dando feedback de interação com &lt;code&gt;:hover&lt;/code&gt; e &lt;code&gt;:focus&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Fornecer um feedback ao usuário é cruciadl para &lt;strong&gt;usabilidade&lt;/strong&gt; e &lt;strong&gt;acessibilidade&lt;/strong&gt;. Uma cor de borda diferenciada enquanto o usuário digita a informação é suficiente para que ele não se perca durante a navegação de seu site.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔧 Ferramentas para desenvolvedores
&lt;/h2&gt;

&lt;p&gt;Apresentarei algumas ferramentas que auxiliarão você na hora do desenvolvimento de sites mais acessíveis:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://khan.github.io/tota11y/" rel="noopener noreferrer"&gt;tota11y&lt;/a&gt;&lt;/strong&gt;: fornece informações a respeito de violações de acessibilidade que seu documento possui;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://goodui.org/" rel="noopener noreferrer"&gt;goodUI&lt;/a&gt;&lt;/strong&gt;: não é um projeto sobre &lt;strong&gt;acessibilidade&lt;/strong&gt; e sim sobre &lt;strong&gt;usabilidade&lt;/strong&gt;. Sua leitura é importante e seguir as diretivas indicadas antes de desenvolver interfaces para seu projeto também. Assim, teremos uma internet mais padronizada e familiar aos nossos usuários;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://webdevchecklist.com/" rel="noopener noreferrer"&gt;webDevChecklist&lt;/a&gt;&lt;/strong&gt;: checklist para desenvolvimento de projetos web.  Além de &lt;strong&gt;acessibilidade&lt;/strong&gt;, possui outros tópicos, como: &lt;strong&gt;performance&lt;/strong&gt;, &lt;strong&gt;semântica&lt;/strong&gt;, &lt;strong&gt;boas práticas&lt;/strong&gt; e outros;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://chrome.google.com/webstore/detail/web-developer-checklist/iahamcpedabephpcgkeikbclmaljebjp" rel="noopener noreferrer"&gt;webDevChecklist for chrome&lt;/a&gt;&lt;/strong&gt;: extensão da ferramenta acima para &lt;code&gt;google chrome&lt;/code&gt;;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fvjpgtxcw0u1oixc2v2k5.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fvjpgtxcw0u1oixc2v2k5.PNG" alt="WebDeveloperChecklist para Google Chrome"&gt;&lt;/a&gt;`&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Estou longe de abordar todos os assuntos referentes a acessibilidade web. É um campo de estudo abrangente e crucial para uma web mais inclusa.&lt;/p&gt;

&lt;p&gt;Espero ter fornecido com este artigo um caminho das pedras de &lt;strong&gt;como&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;porque&lt;/em&gt;&lt;/strong&gt; começar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Leituras adicionais
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.wuhcag.com/" rel="noopener noreferrer"&gt;Web accessibility for developers&lt;/a&gt;&lt;/strong&gt;: acessibilidade para desenvolvedores web; &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.w3.org/TR/WCAG20/" rel="noopener noreferrer"&gt;Web Content Accessibility Guidelines&lt;/a&gt;&lt;/strong&gt;: guia oficial da W3C para desenvolvimento de documentos acessíveis;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://developer.mozilla.org/pt-BR/docs/Web/Accessibility/ARIA" rel="noopener noreferrer"&gt;WAI-ARIA no MDN&lt;/a&gt;&lt;/strong&gt;: documentação do mozilla sobre WAI-ARIA;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://developers.google.com/web/fundamentals/accessibility?hl=pt-BR" rel="noopener noreferrer"&gt;Acessibilidade na Google&lt;/a&gt;&lt;/strong&gt;: documentação de acessibilidade da Google.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>html</category>
      <category>acessibilidade</category>
      <category>a11y</category>
      <category>usabilidade</category>
    </item>
  </channel>
</rss>
