Closed Bug 222254 Opened 21 years ago Closed 21 years ago

Text contained within a flash object tag is always being displayed

Categories

(Core :: Layout, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: ted.bradley, Unassigned)

Details

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.5) Gecko/20031007 Firebird/0.7
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.5) Gecko/20031007 Firebird/0.7

Trying to adapt some web pages to be w3c WAI compliant. There is extensive use
of flash, when we put a link inside the <object> tag e.g.:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0"
width="80" height="46" name="home">
	<param name=movie value="/images/Themes/<%=StyleId%>/Foundation/button_home.swf">
	<param name=quality value=high>
	<param name="wmode" value="transparent">
	<param name="SCALE" value="noborder">
	<embed src="/images/Themes/<%=StyleId%>/Foundation/button_home.swf"
quality=high
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash" width="80" height="46" name="home"
wmode="transparent" scale="noborder"></embed>
		<a href="/" alt="Home">Home</a>
	</object>

The "<a href="/" alt="Home">Home</a>" is always displayed along with the flash
object. The w3c specs imply that the text acts as alt text, so should only be
displayed if the flash fails to load.

Reproducible: Always

Steps to Reproduce:
1.
2.
3.
->Layout
Assignee: general → other
Component: Browser-General → Layout
QA Contact: general → ian
The <object> is using a proprietary MS ActiveX syntax (with clsid and all), so
Mozilla is rendering the alternate content -- the <embed> and the <a>.  You
probably want the <a> inside the <embed>.
Status: UNCONFIRMED → RESOLVED
Closed: 21 years ago
Resolution: --- → INVALID
Just attempted to put the <a> in the <embed>, but the link/text is still 
displayed in addition to the flash object.
Status: RESOLVED → UNCONFIRMED
Resolution: INVALID → ---
Actually... I just checked and <embed> is not a container (the useless </embed>
in the testcase threw me off).

So this is still invalid.  If you want browsers that don't support the ActiveX
stuff to fall back to something else before falling back all the way to the <a>,
you need to provide a nested <object> tag that does not use the clsid thing....
Status: UNCONFIRMED → RESOLVED
Closed: 21 years ago21 years ago
Resolution: --- → INVALID
Ahh, I see now. I've been getting confused by the <embed> into thinking it was 
a part of the <object> tag(!)

Your suggestion of adding an additional <object> tag would work & is as per 
the spec. but unfortunately is not correctly supported by another set of 
browsers whose name I won't mention, but doesn't go unscaved (I've raised a 
bug with them). 

Is there any way of embedding a flash object via the <object> tag, as opposed 
to the <embed>? This solution would leave the highest number of browsers 
compatible I think.

Thanks for your help,

Ted Bradley
> Is there any way of embedding a flash object via the <object> tag, as opposed
> to the <embed>?

Yes; you just specify the type attribute on the object (with the right
content-type), and leave off the classid attribute.

Unfortunately, IE does not support that syntax, as I recall.  If IE also can't
handle nested <object> elements, then it's just all bad....
You need to log in before you can comment on or make changes to this bug.