Cita:
Iniciado por venkman En entornos técnicos las palabras tienden a tener significados más específicos que en el habla común (que es lo que recoge el diccionario). Los matices importan. Además, en un caso es un atributo del elemento y en otro una propiedad del objeto.
setAttribute modifica un atributo del elemento del DOM. Cuando hablamos de un atributo de un elmento del DOM hablamos de esto: <tag atributo="valor" atributo2="valor2"/>
En el otro caso, simplemente estás modificando una propiedad cualquiera de un objeto cualquiera. Un objeto que representa un elemento del DOM tiene, además de los atributos del elemento que representa, cualquier otra propiedad. Por ejemplo, tiene una propiedad children, pero no por eso existe un atributo <tag children="blabla">. O innerHTML, pero no por eso existe un atributo <tag innerHTML="blabla">
Gracias por la explicación, creo que ya lo comprendí. Por lo que en mi caso entiendo que sería más correcto utilizar setAttribute ya que estamos definiendo/"modelando" el contenido o tipo de los atributos de un elemento DOM.
¿Respecto al problema del focus() alguien tiene alguna idea?