Plain text extensions is an obsolete feature of the GIF (version 89a) image format. Essentially, it allows an animated GIF to have ASCII text frames, as well as the usual graphical frames.
As far as I know, it was pretty much never used at all. The only GIF file with plain text extensions that I’m aware of is an early GIFv89a demo named “BOB_89A.GIF” (search the web for it, if you want).
I suspected that most modern GIF viewers do not support this feature. But, I was wondering, in what way do they not support it?
The GIF specification does not seem to have any recommendations as to what a viewer should do if it does not fully support plain text extensions. Here are some things a viewer could do if it encounters a plain text extension:
- It could ignore it completely.
- It could ignore it graphically, but still respect its “delay time”, by waiting the appropriate amount of time before displaying the next frame.
- It could also support the “restore to background” disposal method. This is the only disposal method that could have any effect, at this level of support.
- It could also draw a blank or dummy rectangle at the text’s position, perhaps respecting the text’s background color (if it’s not transparent). If it does that, one would expect it to also support the “restore to previous” disposal method.
- It could fully support it.
The BOB_89A.GIF file mentioned above will not shed much light on how a viewer behaves. So, I constructed a file that should help:
The plain text frame is the third frame of four. If your web browser supports plain text extensions, it should look very much like this:
(The second image is a simulation, and does not actually contain a plain text extension.)
If the first image appears to have three frames (“1”, “2”, “4”), displayed for one second each, and loops at three seconds, then your browser ignores plain text extensions completely. I tested a few viewers, and all of them ignored the plain text extension completely.
If you’re programming a GIF viewer, how difficult is it to implement support for plain text extensions? The only real difficulty is that your viewer must be capable of rendering monospace ASCII text at arbitrary character sizes, which may or may not be simple to do, depending on what facilities your program has available. It’s no big deal for any large software project. Acquiring and validating enough sample files to test it with might take longer than the actual programming.