No todos los navegadores admiten todos los atributos de todos los elementos. Hay una serie de atributos nuevos en HTML5, por lo que la idea de realizar pruebas para ver en qué tipo de entorno de navegador se encuentra se vuelve cada vez más importante.
function elementSupportsAttribute(element, attribute) ( var test = document.createElement(element); if (attribute in test) ( return true; ) else ( return false; ) );
Uso
if (elementSupportsAttribute("textarea", "placeholder") ( ) else ( // fallback )