¿Por qué unicode no tiene caracteres de control para el color?

Porque eso violaría la intención fundamental de Unicode. El punto de Unicode es encapsular los glifos, el concepto subyacente detrás de las letras. Intencionalmente no cubre la representación, el cariño, el tamaño, etc. Por lo tanto, una “a” minúscula es el mismo glifo si está escrito a mano, impreso en papel, exhibido en la pantalla, pintado en una ladera, estampado en braille o dibujado en humo por un avión. Puede estar en cualquier fuente, cualquier color, en negrita, en cursiva, subrayado. O incluso pasó a un lector de pantalla. Lo que se transmite es el concepto subyacente de la minúscula “a”.

Si observa la representación de emoticones, que son parte de Unicode, verá que los diferentes fabricantes de computadoras tienen representaciones bastante diferentes. Lo que se representa es el concepto subyacente de “cara sonriente”, no un píxel en particular.

Se espera que tenga un sistema completamente separado que controle su pantalla. Este sistema debería manejar la forma en que se muestran los glifos, incluidas las tecnologías de asistencia. ¿Qué debería mostrar un hipotético rojo Unicode a una persona ciega?

Más o menos lo hace: http://www.unicode.org/reports/t… .
Pero en serio: el color y el formato del texto no están dentro del alcance de la especificación Unicode. Las razones son muchas:

  1. Las formas universalmente más populares para mostrar texto no usan color. Los libros, periódicos e incluso la mayoría de los sitios web no usan el color del texto, por varias razones. Esto significa que cualquier texto debe insertarse en dichos medios sin problemas. En general, esto exige que el texto debe ser legible sin usar color y, por lo tanto, debe eliminarse cualquier significado del color.
  2. Cuando desee definir atributos de texto como el color y el formato, suele ser una situación muy personalizada. Muy raramente, dos aplicaciones creadas de forma independiente estarían de acuerdo en qué tipo de formato se necesita: algunas se detienen en perno / cursiva / color, algunas permiten especificar la fuente y las reglas de sustitución de fuente, algunas permiten definir el espaciado entre palabras / párrafos y formas de texto, etc. Hacer que la gente esté de acuerdo en eso no sería fácil. Los formatos de documentos desempeñan este papel, hay muchos de ellos, y la mayoría de ellos tienen muchos problemas de compatibilidad.
  3. Varios tipos de medios varían mucho en términos de definiciones de color y rangos de color admitidos, y la traducción del color de un medio o un dispositivo a otro a menudo se realiza con el mejor esfuerzo, sin garantía de que su rojo sea el mismo que el rojo, o que su rango de rojos es tan grande como su rango.

Aportaría mucha complejidad a un tema ya enormemente complejo, sin beneficios y con muchos problemas. El color solo pertenece a otro lugar, donde se define un subconjunto utilizable de medios compatibles compatibles.

Unicode tiene caracteres de control (todos los caracteres de control ASCII están en Unicode).

Pero a Unicode no le importan los colores o las fuentes. Importa incluso cuando lo usa una persona ciega (por ejemplo, leer en algún dispositivo braille o usar algún sintetizador de voz).

Puede generar su Unicode como UTF-8 en algo que comprenda alguna secuencia de inicio de caracteres de control y actuar en consecuencia. Si ese algo es un emulador de terminal compatible con UTF-8 que comprende el código de escape ANSI (por ejemplo, la mayoría de los emuladores de terminal en Linux) obtendrá colores. Si ese algo es un navegador HTML y usa etiquetas HTML apropiadas o estilo CSS, obtendrá colores.