HTML5 Speedtests gibts diverse, als Beispiel:
http://speedtest.rhanssen.de/
Basiert auf
https://github.com/adolfintel/speedtest und ist mit ein wenig Linux-Kenntnis in 10 Minuten installiert.
Ob die jetzt besser oder schlechter messen wirst du als Endkunde kaum sinnvoll beurteilen können.
Ich behaupte mal, dass eine exakte Messung weniger eine Frage des Tools ist als eine Frage der Position/Anbindung des Testservers.
Wenn das Ziel z.B. ist die DSL-Bandbreite zu messen, dann führt ein Testsystem welches nicht am gleichen Router hängt wie der Endkunde naturgemäß zu potentiellen Abweichungen.
Witzigerweise liefern Speedtest.net und co bei mir sogar teilweise deutliche Abweichungen je nach verwendetem Browser und Gegenstelle wenn ich aus nem RZ (1GBit LAN) aus teste.
Teilweise über mehrere Messungen abwechsend reproduzierbar, manchmal total durcheinander, hier mal 4 Tests in Reihe:
https://www.speedtest.net/result/8176122103 Chrome
https://www.speedtest.net/result/8176123638 FF
https://www.speedtest.net/result/8176126448 Chrome
https://www.speedtest.net/result/8176128985 FF
Ich vermute, dass viele Server einfach auch selber nicht genug Bandbreite haben um Anschlüsse jenseits von DSL zuverlässig zu messen.
Dazu kommt natürlich, dass vermutlich weder Flash noch HTML5-Seite deinen IP-Stack verändern können.
Den Unterschied sieht man schön mit iperf wenn man dort im tcp-Modus mal die Windows-Size verändert, udp mit fester Bandbreite nutzt oder mehrere Threads startet.
Einen Speedtest im Browser würde ich also eher als eine Schätzung als als ein Messung betrachten.