media queries y palabra clave only

Hola, estoy medio confuso con la palabra clave only de Media Queries. Ya sé que se utiliza para ocultar los Media Queries a los agentes de usuarios, pero la especificación en w3c no la entiendo y en otro lugar donde aclaran la palabra only no veo que se tenga mucho que ver con la especificación ya que dice que se “esperan una lista separada por comas de media types” y en la especificación no dice nada de comas. Si alguien sabe definir bien lo que dice la especificación seria estupendo.

La página en español pone esto y os la enlazo:
Los navegadores que no reconocen Media Queries, esperan una lista separada por comas de media types, y la especificación dice que se debería truncar cada valor, inmediatamente antes del primer caracter no alfanumérico que no sea un guión.

http://activ.com.mx/introduccion-a-media-queries-con-css3/

Y el enlace de la especificación w3c:
https://www.w3.org/TR/mediaqueries-4/#mq-only
Hola!

Yo diría que el sitio en español se equivoca: sólo se pueden separar las media queries por comas. Si separas los media types por comas, tal como dice la especificación, solo se tendra en cuenta la primera parte, el resto se deshecha. Por lo demas, al momento de escribir la especificación, el autor dice que la palabra only ya no es muy utilizada.
En la especificación no veo que diga nada de las comas tal como dices. También dices que el autor dice en la especificación que la palabra only ya no es muy utilizada, tampoco veo que diga nada de eso. Lo que si veo que dice es que los navegadores antiguos son extremadamente raros y la palabra only es rara vez utilizada. He utilizado el traductor de Google y más o menos se puede entender lo que dice la especificación, aunque vuelvo a remarcar que no veo que diga nada de las comas pero que si lo dice la página en español que te enlace.


El concepto de las consultas de los medios de comunicación se origina en HTML 4 [HTML401] . Esa especificación se define únicamente los tipos de medios , pero tenía una sintaxis compatible con visión de que acomoda la adición de futuros conceptos como funciones de medios : consumiría los caracteres de una consulta de medios hasta el primer carácter no alfanumérico, e interpretar eso como un tipo de medio , ignorando el resto. Por ejemplo, la consulta de medios de pantalla y (color) podrían truncarse a apenas pantalla .

Desafortunadamente, esto significa que las aplicaciones de usuario legado que utilizan este comportamiento de manejo de errores ignorará cualquier funciones de medios en una consulta de medios , aunque sean mucho más importante que el tipo de medio en la consulta. Esto puede resultar en estilos accidentalmente se aplica en situaciones inapropiadas.

Para ocultar estas preguntas de los medios de los agentes de usuario legado, la consulta de medios puede estar precedido de la palabra clave única. La única palabra clave no tiene ningún efecto sobre la consulta de medios resultado 's, pero hará que la consulta de medios a ser analizado por los agentes de usuario legado como especificando el desconocido tipo de medio "sólo", y por lo tanto ser ignorado.

así y todo si pudieras hacer una traducción mejor sobre esto sería de gran ayuda.
En la especificación no veo que diga nada de las comas tal como dices

Eso es porque está un poco más arriba: https://www.w3.org/TR/mediaqueries-4/#mq-list. Debería ser suficiente con ver el diagrama, pero si necesitas que lo traduzca me lo puedes pedir :).

También dices que el autor dice en la especificación que la palabra only ya no es muy utilizada, tampoco veo que diga nada de eso.

La segunda nota, en el punto 2.2.2 de la especificación "Hiding a Media Query From Legacy User Agents: the only keyword", dice lo siguiente:

Note: At the time of publishing this specification, such legacy user agents are extremely rare, and so using the only modifier is rarely, if ever, necessary.

Cuya traducción al español es:

Nota: al momento de publicar esta especificación, estos navegadores antiguos son extremadamente raros, por lo que usar el modificador 'only' es muy raro, si es que, necesario.
Comillas añadidas por mi.

El traductor de Google, si bien es muy bueno, no siempre puede traducir todo de manera lógia :P.
Que extraño, la especificación más antigua sí dice que los "media types" serán una lista separada por comas:

There have been requests for ways to describe in more detail what type of output devices a style sheet applies to. Fortunately HTML4 foresaw these requests and defined a forward-compatible syntax for media types. Here is a quote from HTML4, section 6.13:

Future versions of HTML may introduce new values and may allow parameterized values. To facilitate the introduction of these extensions, conforming user agents must be able to parse the media attribute value as follows:

The value is a comma-separated list of entries. For example,
media="screen, 3d-glasses, print and resolution > 90dpi"
is mapped to:


"screen"
"3d-glasses"
"print and resolution > 90dpi"
Each entry is truncated just before the first character that isn't a US ASCII letter [a-zA-Z] (Unicode decimal 65-90, 97-122), digit [0-9] (Unicode hex 30-39), or hyphen (45). In the example, this gives:
"screen"
"3d-glasses"
"print"
Sólo traduje lo marcado en negrita

... El valor es una lista separada por comas. Por ejemplo, media="screen, 3d-glasses, print and resolution > 90dpi", se convierte en: ...

Respecto a tu petición:

Lo que no entiendo es exactamente esto (la especificación) y que es lo que un agente de usuario debería hacer.

Lo que el agente debe hacer dependerá de la especificación que adopte. En el caso de la especificación que publicaste, es un trabajo en progreso, por lo que no es muy conveniente usarla aún (puede cambiar o simplemente ser rechazada en el futuro), por lo tanto, deberías seguir lo que dice la especificación del 2012: una lista separada por comas de media types.
Que extraño, la especificación más antigua sí dice que los "media types" serán una lista separada por comas
claro,leyendo bien todo lo único que puede esperar los media type son una lista separada por comas, los media queries pueden esperar más cosas no sólo media type separadas por comas como por ejemplo (media feature).

Me sería de gran ayuda si pudieras traducirme esto de la especificación en borrador. Que en verdad leyéndola con el traductor viene de a decir lo mismo que la recomendación del 2012 pero con distintas palabras, ya que debe truncar antes del primer carácter no alfanumerico. Pero si me lo traducen todo sería genia ya que algunas palabras el traductor no le veo lógica.
The concept of media queries originates from HTML4 [HTML401]. That specification only defined media types, but had a forward-compatible syntax that accommodated the addition of future concepts like media features: it would consume the characters of a media query up to the first non-alphanumeric character, and interpret that as a media type, ignoring the rest. For example, the media query screen and (color) would be truncated to just screen.
gracias por la traducciones y por aclararme lo del nivel. Dos ultimas cosas, donde dice esto en la traduccion:

1.
consumiría los caracteres de una "media query"

¿Como podria interpretar la palabra consumiria aqui?

2.
hasta el primer caracter no alfanumérico

aqui pone hasta el primer caracter no alfanumerico, aunque no lo pone me imagino que es ¿sin incluir este caracter no alfanumerico? ya que si leemos la otra especificacion que dice lo mismo con distintas palabras dice esto:

Cada entrada se trunca justo antes del primer carácter no alfanumérico
1. Consumir, en este contexto, es leer o "tomar en cuenta".
2. Claro, sin incluir tal caracter.