Y he aquí por qué:
Va en contra del espíritu de los estándares web.
La única razón por la que existen los estándares web es para que no tengamos que escribir código específico para entornos específicos. Debemos escribir código que se adhiera a los estándares establecidos y el software a cargo de mostrar nuestro código debe mostrarlo como dictan los estándares.
Se basa en la cadena de agente de usuario del navegador
… que tiene una historia hilarantemente desastrosa y es fácilmente falsificable.
Puede entorpecer los dispositivos
Ejemplo: detectas para el iPhone y sirves es contenido especial. Ahora el iPhone nunca puede ver la página web como la ven otros navegadores, a pesar de que es totalmente capaz de hacerlo.
¿Entonces por qué lo hacemos?
Lo hacemos porque los diferentes navegadores manejan las cosas de manera diferente y la detección del navegador puede sacarnos de un apuro y hacer que las cosas funcionen como deberían. Difícilmente puedes culparnos, ¿verdad?
A menudo, las situaciones que nos llevan a recurrir a la detección del navegador provocan ira. Pero recuerde que a menudo no es el navegador el que tiene la culpa. Incluso en el caso de IE 6, era el navegador más compatible con los estándares y más avanzado de su época cuando se lanzó. Y algunos de los estándares que tenemos hoy no estaban completos en ese momento.
¿Qué deberíamos hacer en su lugar?
Soy el primero en admitir que el diseño web del mundo real a veces necesita arreglos rápidos, soluciones aceptables para el presupuesto y asegurarse de que las funciones funcionen según lo previsto. Esto no siempre permite elecciones altruistas que dejan de lado alguna funcionalidad porque es “lo correcto”.
Idealmente…
… haríamos pruebas de capacidad. Esa es la información que realmente necesitamos, ¿verdad? Probar si el entorno en el que nos encontramos es capaz de lo que queremos hacer. Si es así, hazlo. Es más fácil decirlo que hacerlo, estoy seguro, y yo mismo apenas sabría por dónde empezar. Pero estoy seguro de que algunos de ustedes son personas muy inteligentes y pueden hacerlo (¡o ya lo están haciendo!)
Más
Aquí hay un poco sobre las pruebas de capacidad de Quirksmode. Y aquí está Dave Shea con un buen ejemplo de por qué la detección del navegador no es buena.