Augusto,
The audio element is ok for playing sounds. The key value in this is that it doesn't require a plugin. It's built into the browser. There are compatibility issues between browsers on what formats are supported. The three audio types that are supported in some shape or form are OGG(Ogg Vorbis), MP3, and WAV. The audio tag does have function called canPlayType that tells you if the specific browser might support a file type.
would tell you if the current browser supports MP3 files. Return values from canPlayType are "no", "probably", or "maybe".
CanIUse.com is another useful resource. If you want to use a library to
test availability of HTML5 features, check out
Modernizr.
Though not as widely supported,
you should look into the WebAudio API. It picks up where the Audio tag leaves off like better support for volume/gain management, multiplexing sound, etc.
Re: collision detection and things like that, I don't believe that is a core concern for HTML5 implementers. Lots of libraries exist that do collision detection and response like bullet.js and jiglib.js.
Re: Gamepads: There is a specification API for gamepads and experimental support in Chrome and Firefox, more info here (
https://wiki.mozilla.org/GamepadAPI).
Re: animation: Check the other threads in this forum where I talk about requestAnimationFrame, that facilitates core animation stuff but for easing functions/etc, you would have to do that yourself. One library that I like to use for easing stuff when I'm not using RaphaelJS(SVG and has built in easing funcs) is TridentJS(
https://github.com/kirillcool/trident-js)