RFR: JDK-8314731 : Add support for the alt attribute in the image type input HTML tag [v8]

Phil Race prr at openjdk.org
Tue Dec 3 22:20:50 UTC 2024


On Mon, 2 Dec 2024 17:26:00 GMT, ScientificWare <duke at openjdk.org> wrote:

>> This is referenced in Java Bug Database as
>> - [JDK-8314731 : Adds support for the alt attribute in the image type input HTML tag.](https://bugs.java.com/bugdatabase/view_bug?bug_id=8314731)
>> 
>> This is tracked in JBS as
>> - [JDK-8314731 : Add support for the alt attribute in the image type input HTML tag](https://bugs.openjdk.java.net/browse/JDK-8314731)
>> 
>> According [HTML 3.2 specification](https://www.w3.org/TR/2018/SPSD-html32-20180315/#input)
>> 
>> `alt` is not an attribute of the `input` element.
>> 
>> According [HTML 4.01 specifications](https://www.w3.org/TR/html4/interact/forms.html#h-17.4) : 
>> 
>>> ... For accessibility reasons, authors should provide [alternate text](https://www.w3.org/TR/html4/struct/objects.html#alternate-text) for the image via the [alt](https://www.w3.org/TR/html4/struct/objects.html#adef-alt) attribute. ...
>> 
>> This feature is not implemented in `FormView.java`.
>> 
>> ⚠️  ~~This also affects the HTML 32 DTD~~
>> 
>> ![Screenshot_20230817_025316](https://github.com/openjdk/jdk/assets/19194678/8e580574-d842-4a65-884b-26e33cd12138)
>> 
>> Left before the patch and right after the patch.
>> 
>> 
>> import java.awt.BorderLayout;
>> import java.awt.Dimension;
>> import javax.swing.JEditorPane;
>> import javax.swing.JFrame;
>> import javax.swing.JScrollPane;
>> import javax.swing.SwingUtilities;
>> import javax.swing.text.Document;
>> import javax.swing.text.html.HTMLEditorKit;
>> import javax.swing.text.html.StyleSheet;
>> 
>> public class HTMLAddsSupportAltInputTag {
>>   public static void main(String[] args) {
>>     new HTMLAddsSupportAltInputTag();
>>   }
>>   
>>   public HTMLAddsSupportAltInputTag() {
>>     SwingUtilities.invokeLater(new Runnable(){
>>       public void run(){
>>         JEditorPane jEditorPane = new JEditorPane();
>>         jEditorPane.setEditable(false);
>>         JScrollPane scrollPane = new JScrollPane(jEditorPane);
>>         HTMLEditorKit kit = new HTMLEditorKit();
>>         jEditorPane.setEditorKit(kit);
>>         StyleSheet styleSheet = kit.getStyleSheet();
>>         styleSheet.addRule("""
>>             body {
>>                 color: #000;
>>                 font-family:times;
>>                 margin: 4px;
>>             }
>>             """);
>>         String htmlString = """
>>             <html>
>>                 <body>
>>                     <input type=image name=point src="file:oracle_logo_50x50.jpg" alt="Logo Oracle JPG">
>>                     <p>
>>                     <input type=image name=point src="file:none_ora...
>
> ScientificWare has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 20 commits:
> 
>  - Merge master
>  - Replaces this title with "alt attribute test in HTML image type input".
>    
>    Moves this test to /jdk/test/jdk/javax/swing/text/html.
>  - bug8314731.java : Corrects the CopyRight date.
>  - FormView.java :
>    Removes a whitespace
>    
>    bug8314731.java :
>    Adds a newline at end of file.
>  - getMaximumSpan(int axis) method
>    doc -> Not used
>    
>    mouseReleased(MouseEvent evt) method
>    elem and hdoc -> not used
>    return -> could be removed, method returns void
>    
>    loadElementDataIntoBuffer(Element elem, StringBuilder buffer) method
>    value != null -> name can't be null at this point
>    
>    getInputElementData(AttributeSet attr) method
>    value = null -> Already set at null
>  - Removes files
>    
>    make/javac.20231014_162919.args
>    make/javac.20231014_220237.args
>    make/javac.20231023_221655.args
>  - Adds a regression test for JDK-8314731.
>  - Others changes in the working directory.
>  - Merge Master
>  - Merge master
>  - ... and 10 more: https://git.openjdk.org/jdk/compare/352201dd...de644539

Changes requested by prr (Reviewer).

src/java.desktop/share/classes/javax/swing/text/html/FormView.java line 196:

> 194:         AttributeSet attr = getElement().getAttributes();
> 195:         HTML.Tag t = (HTML.Tag)
> 196:             attr.getAttribute(StyleConstants.NameAttribute);

This PR has LOTS of completely unrelated changing to formatting.
Please revert ALL of it, so we can see what is related to the change and not be distracted.

test/jdk/javax/swing/text/html/bug8314731.java line 28:

> 26:  * @bug 8314731
> 27:  * @summary FormView doesn't support the alt attribute
> 28:  * @library /java/swing/text/html

What is this library ? I don't see it anywhere under the test/jdk folder.
And there's no @build tag.

Furthermore, this test clearly needs a display which means it needs to be marked @headful

test/jdk/javax/swing/text/html/bug8314731.java line 51:

> 49: 
> 50:     public static void main(String[] args) throws Exception {
> 51:         new bug8314731();

the UI needs to be created on the EDT using SwingUtilities.invokeAndWait.
And you need use a finally block to be SURE the Frame is disposed, else the test will just sit there.

Please make sure you have used jtreg to validate this test.

test/jdk/javax/swing/text/html/bug8314731.java line 53:

> 51:         new bug8314731();
> 52:         if (testFailed) {
> 53:             System.out.println("ok");

I find this backwards - and hence confusing. 
You really mean "testPassed" not "testFailed".

test/jdk/javax/swing/text/html/bug8314731.java line 80:

> 78:                         <input type=image
> 79:                                name=point
> 80:                                src="file:logo.jpeg"

and of course you don't need to supply logo.jpeg, because the point is that there should be no image found.

-------------

PR Review: https://git.openjdk.org/jdk/pull/15319#pullrequestreview-2476851661
PR Review Comment: https://git.openjdk.org/jdk/pull/15319#discussion_r1868431626
PR Review Comment: https://git.openjdk.org/jdk/pull/15319#discussion_r1868428214
PR Review Comment: https://git.openjdk.org/jdk/pull/15319#discussion_r1868430794
PR Review Comment: https://git.openjdk.org/jdk/pull/15319#discussion_r1868428906
PR Review Comment: https://git.openjdk.org/jdk/pull/15319#discussion_r1868429679


More information about the client-libs-dev mailing list