Imagens e mídia

Texto carrega muita coisa em uma página web, mas não tudo. Fotos, diagramas, ilustrações, vídeos e áudio também são conteúdo, e HTML tem elementos para cada um deles. Este capítulo é sobre a marcação que coloca mídia em uma página: como apontar para um arquivo de imagem, como descrevê-lo para pessoas que não conseguem vê-lo, e como servir o arquivo certo para a tela certa sem desperdiçar dados de ninguém.
O elemento de imagem
Você coloca uma imagem em uma página com o elemento de imagem, escrito como <img>. Ele não tem conteúdo e não tem tag de fechamento. Em vez disso, você o configura através de dois atributos: qual arquivo mostrar e do que é a imagem.
<img src="golden-retriever.jpg" alt="Um golden retriever sentado em grama alta">src é a fonte: o caminho ou endereço web do arquivo de imagem. alt é o texto alternativo: uma breve descrição da imagem em palavras. Se a imagem não conseguir carregar, ou se alguém estiver ouvindo a página com um leitor de tela em vez de olhá-la, o texto alt é o que eles recebem. Então escreva como se estivesse descrevendo a imagem para um amigo ao telefone.
src, que é o arquivo a mostrar, e alt, que descreve a imagem em palavras. Escreva o alt como se estivesse dizendo a alguém ao telefone o que há na foto. É a parte que é pulada mais, e é a parte que importa mais. Imagens responsivas
Uma foto que fica nítida em um laptop pode ser muito maior do que um telefone precisa. Enviar esse arquivo de tamanho completo para uma tela pequena desperdiça os dados do visitante e desacelera a página. HTML permite que você ofereça ao navegador algumas versões da mesma imagem e deixe-o escolher a que se encaixa.
Você não precisa disso para cada imagem enquanto está começando. Uma única <img> com um arquivo sensível é tudo bem. Mas ajuda saber que a ideia existe: a mesma foto pode vir em vários tamanhos, e o navegador escolhe.
<img src="beach-800.jpg" alt="Ondas rolando em uma praia tranquila ao pôr do sol"><img> simples está bom. A opção existe para quando uma página começa a parecer pesada no mobile. Vídeo e áudio
HTML consegue reproduzir vídeo e áudio sem nenhum plug-in. Para um clipe, você usa o elemento <video>; para áudio, <audio>. Adicione o atributo controls e o navegador lhe dá um botão de play, uma timeline e um controle de volume de graça.
<video src="tutorial.mp4" controls></video>
<audio src="podcast-episode.mp3" controls></audio>Diferente de uma imagem, esses têm uma tag de fechamento, porque você pode colocar texto de fallback ou configurações extras entre as tags de abertura e fechamento. A coisa mais importante de lembrar no começo: sempre inclua controls, ou o visitante não tem jeito de apertar play.
<video> reproduz um clipe e <audio> reproduz som, sem plug-ins necessários. Adicione controls ou não há botão de play e o visitante fica preso. Ambos têm tags de fechamento, porque você pode colocar configurações e texto de fallback dentro deles, diferente de uma imagem. Dimensionamento, lazy loading e desempenho
Quando uma imagem carrega, ela pode empurrar o resto da página para um lado. Você está lendo um parágrafo, uma foto termina de carregar acima, e de repente o texto pula para baixo. Esse pulo é irritante, e você consegue evitá-lo: diga ao navegador o tamanho da imagem antecipadamente com width e height.
<img src="team-lunch.jpg" alt="O time compartilhando almoço na varanda do escritório"
width="800" height="600">Com esses números, o navegador reserva a quantidade certa de espaço antes da imagem chegar, então nada pula quando ela chega. Você dá as dimensões reais em pixels do arquivo, e CSS ainda consegue redimensioná-lo na tela.
width e height e a página para de pular enquanto fotos carregam. Use o tamanho real em pixels do arquivo; CSS ainda consegue encolhê-lo na tela. Esse hábito único corrige o glitch de carregamento mais irritante que existe. 
