Semantic elements like <form>, <table>, and <img> clearly define their content, while non-semantic elements like <div> and <span> provide no information about meaning. HTML5 introduces new semantic elements like <nav> for navigation links, <article> for independent content items, and <section> for storing content in a database record. New form input types provide constraints for search boxes, numbers, sliders and more. Audio and video can be embedded and controlled with JavaScript events. Local storage, databases, and caching improve application functionality. Modernizr detects native HTML5 support and enables polyfills for missing features.