Example: http://html5videoguide.net/NEW/CH4/code_c4_8.html Works in Chrome 36. Spec: http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#event-media-cuechange The cuechange event should be raised both on the TextTrack object and the HTMLTrackElement when a cue becomes active according to the spec. Neither is happening in Safari. (Try replacing tracks[i].oncuechange = cuechange; with tracks[i].track.oncuechange = cue change; to check if it's happening on the TextTrack object.)
Sorry, moved the example to http://html5videoguide.net/NEW/CH4/code_c4_9.html