El atributo required es soportado por IE9, lo se por como se comportan :VALID e :INVALID de CSS3
En la versión 9 de IE funcionan bastante bien CSS3 y HTML5, la verdad es que estoy quedando impresionado a presar de defectos menores en cosas muy puntulales
en IE8 e inferiores valido por PHP, pero bueno, no siempre es importante optimizar hasta el detalle mas remoto en cada navegador