Web Development in the common dev slang is anything that is used trough the web browser, but not all web apps are created equal. There is a wide range of usages for this systems, from a blog to a very complex application. So are there any differences? Do they matter?

Documents vs Applications

Some applications are designed as a document pipeline, like  your personal site, a blog or a newspaper, the primary objective is to provide information mostly consumed by reading it, of course this can and should be degraded to be consumed by several devices.

On the other hand applications are designed to manipulate information, and sometimes degrading the functionality can be very hard because its simply necesary, applications present a different set of problems for the user.

History of HTML

HTML was originaly designed to display documents, it was more like reading an article or a book chapter on a browser, but with the introduction of media and scripting there was a shift towards a mix between information manipulation and information delivery.

So I would say that the purpose of HTML with all the domain specific tags for documents are no longer required for every thing that is displayed with html and should be considered as a render engine more than a document description engine.

The display of a Web-based App

Applications require some flow content, but for the most part are blocks. This can be represented by mainly to types of display properties: block, inline-block. There is a set of tags that come in handy to help this but are not because of semantics, are because of the media: img, video, audio. Block and inline-block are accomplished using div, and for the "semantics" you could use properties of those tags.

So the summary of a web application are blocks and media.

A different set of mind

Applications are not documents, those can be crawoled at some point but this is hard to accomplish mantaining all the ajax, sockets, media, defer loading, etc. The best thing would be to deliver a crawlable version of the app and a usable app. Now we enter into the realm of devices, usability, platforms and user-agents. all a set of problems, so i guess semantics is the least of your problems.

About Semantics

Semantics is way to provide context, HTML has semantics for documents, but not for applications, so my recomendation is use app semantics with ids, classes and data-role and create a true application semantics.

In the case that your html is intended to deliver a document, the use the document semantics.