Pure CSS speech bubbles uses pseudo-elements to create pure CSS speech bubbles from existing, semantic HTML. This approach uses progressive enhancement and removes the need for images or JavaScript.
All speech bubbles use simple, semantic HTML. No empty elements, no unnecessary extra elements, no JavaScript, no images and it can be applied to your existing semantic HTML.