En HTML, ¿pueden los elementos nietos heredar atributos de los elementos abuelos?

Simplemente lo hacen; no es solo que pueden o podrían. La herencia del elemento de nivel primario incluye automáticamente la herencia de sus atributos heredados. La herencia solo se detiene si un elemento anula un atributo y, por supuesto, cuando no hay herencia, incluso en el primer nivel secundario. Algunos atributos tienen un valor predeterminado no heredado, algunos se pueden configurar explícitamente para heredar.

Como Dave señaló, la palabra clave es en cascada. Para señalarlo aún más fuerte, piense por qué CSS se llama hojas de estilo en cascada. El efecto en cascada de las definiciones de estilo es una característica importante de CSS.

Cuando experimente algo incorrecto, es probable que provenga del uso de un preprocesador CSS como SASS o LESS aplicando sus directivas de manera diferente de lo que piensa. O tal vez no use un editor con una función de autocompilación sass. Los navegadores ejecutan CSS, no SASS.

Es complicado.

  

two hereda el atributo de title de one y esto solo lo conozco yo como ejemplo de herencia de atributo, además del caso del estilo en línea (atributo de style ) que de facto conduce a la herencia CSS, no HTML, pero indica que existe algo así.

Sin embargo, el ejemplo de title no funcionará cuando el title se defina con JavaScript:

  var divOne = document.createElement ('div');
 var divTwo = document.createElement ('div');
 document.body.appendChild (divOne);
 divOne.title = "hola";
 divOne.appendChild (divTwo);

 divOne.title // => "hola"
 divTwo.title // => ''