Chat bubbles are frames. They are rendered into the WorldFrame.
Say something and then try
Code:
for i = 2, WorldFrame:GetNumChildren() do
local frame = select(i, WorldFrame:GetChildren())
local tregion = select(11, frame:GetRegions()) -- regions 1 to 10 are the bubble textures
if tregion:GetObjectType() == "FontString" then
print(tregion:GetText())
end
end
(guess deactivating the nameplates while trying this would be helpfull)
As you can see the are accessible. Must be possible to resize or scale them.