Sem problemas, Augusto! Vou tentar explicar de outra forma:
Toda vez que você coloca uma tag como <input>, <img>, <form> etc., o navegador precisa de algumas informações a mais, além do nome da tag em si (input é o nome da tag <input>) para mostrar essa tag direitinho no navegador.
O jeito de ela conseguir essas informações a mais é olhando na própria tag, mas nos atributos dela. Por exemplo, na declaração:
<input type="image" src="botao.png">
Temos a declaração de uma tag chamada input com dois atributos. O primeiro é o atributo type que foi declarado com o valor image. O segundo é o atributo src, que foi declarado com o valor botao.png. Ou seja, atributos têm nome e valor.
O navegador, então, olha os atributos da sua declaração para saber o que fazer com aquela tag que você escreveu. Mas ele não olha qualquer atributo: ele olha atributos específicos. Por exemplo, a tag input pode aparecer de diversas formas: botão, caixa de texto, imagem... Para saber qual dessas formas deve ser usada para uma determinada declaração, o navegador sabe que precisa olhar o atributo chamado type e ver qual valor ele tem naquela declaração.
Da mesma forma, quando ele vê que o valor do atributo type é image, ele sabe que precisa procurar um outro atributo na declaração chamado src para descobrir qual imagem ele deve usar.
Repare que o navegador precisa saber de diversas coisas para conseguir mostrar uma página. Na verdade, não é exatamente ele que sabe, mas sim os programadores que criaram o HTML e os navegadores. Na verdade, eles que decidiram que esses seriam os nomes das tags e dos atributos. Cabe a nós obedecer :)
Ficou mais claro agora?