Welcome to the Question2Answer Q&A. There's also a demo if you just want to try it out.
+3 votes
in Q2A Core by
edited by

image alt problem

<img src="./?qa=image&amp;qa_blobid=3153732008858225060&amp;qa_size=500" width="500" height="500" class="qa-avatar-image" alt="">

alt tag empty on all blobid images? Tell Me How to Fix It? and I want to fill this tag with UserName?

Just an FYI, having a blank alt text *is* valid HTML, if the image is only decorative like an icon or avatar.

2 Answers

+4 votes
selected by
Best answer

Hello Tech Guru. Welcome!

There are two workarounds for adding user handles in the alt attribute:

Method 1: Modify function qa_get_user_avatar_html() in qa-include/app/users.php and add the following line after line 675:

    // Add user handle in 'alt' HTML attribute
    $html = str_replace('" alt=""', '" alt="' . qa_html($handle) . '"', $html);
  • Pros: Quick and easy way of getting the result you intended
  • Cons: It'll get reverted to its initial form after updating Q2A

Method 2: Override function qa_get_user_avatar_html() via plugin.

function qa_get_user_avatar_html($flags, $email, $handle, $blobId, $width, $height, $size, $padding = false)
    $html = qa_get_user_avatar_html_base($flags, $email, $handle, $blobId, $width, $height, $size, $padding);

    // Add user handle in 'alt' HTML attribute
    if ($html)
        $html = str_replace('" alt=""', '" alt="' . qa_html($handle) . '"', $html);

    return $html;

There's a great tutorial about how to create a plugin at https://docs.question2answer.org/plugins/tutorial/

  • Pros: It'll work after Q2A updates
  • Cons: None

This answer assumes you're willing to make it work by yourself, but I'll give you
a few suggestions just in case you find it difficult:

  • Add a comment below, I (and other community members) can try to help you out.
  • Find a developer friend and ask him to implement it for you.
  • Get consultancy from one of the service providers or send me a private message.

Thank you for reading.

Is there anything wrong in doing this change in core? I mean it should be in Q2A by default right?
I agree with you arjunsuresh. There's nothing wrong with it.
Thank you, that worked nicely.
I think it isn't related to this topic. Please consider posting it as a question (instead of a comment), adding examples and more details about what you want to achieve.

You may even receive answer from other community members as well.
0 votes

@jair I added this code in the way you showed me for the same problem. For this I gave a picture after adding the code, see if it is ok? Tell me if there is any problem.

Hi Md Belal, your image is not clear enough but you must put it just above the line beginning with 'return sprintf(...'
I uploaded the image again and gave the link to see the image.
And if you make a mistake in entering the code, you will show an example.
What is the solution to just do this? Or need to change anything else?
That's all you need to do.
Check again if I was able to place the code correctly. Link:
Yes, that's correct.
Thank you very much.
I'm glad it worked for you.