Please please please remember that there is no such thing as an alt tag. HTML has no <alt>. It is an alt attribute, or alt text if that’s easier to say and type.
alt attribute is not an SEO tool, it’s an accessibility tool. It’s purpose is to allow people/machines who can’t see the images to understand the page. If you’re looking to go keyword stuffing (aka spamming) then just forget it. Google is usually smart enough to know when it looks like you’re giving genuine alt text and when you’re spamming, and if it thinks you are spamming then it will treat your site with the contempt it deserves...
So, what should you be including in your alt text? A simple description of the image and/or its function, that would be appropriate for a user who couldn’t see the image itself, so that the page still makes sense.
1) What is the appropriate length for ALT tag keywords ?
Whatever is needed to take the place of the image. In most cases this will be brief, because while a picture may be worth a thousand words, it’s rarely necessary to use more than a few words to give sufficient detail.
2) Shall i use normal sentences or should use underscore of hyphens instead of spaces
Why on earth would you want to use underscores or hyphens? Alt text is supposed to be human-readable and friendly. If someone is using, for example, a text-to-speech reader, do you think it will cope better with “Sunny beach in Mexico” or “sunny-beach-in-mexico”? It’s rarely necessary to write in full sentences, because you won’t usually be writing that much, but just use a normal writing style.
3) Does the name of the image file and its format matters ?
The image format will make no difference. The image name can make a difference to SEO, although if you’ve got everything else right then it shouldn’t be a huge difference. By that I mean ... if you have no alt text and no meaningful surrounding context that Googlebot can understand, then changing “img10432.jpg” to “mexico-beach-4.jpg” is vitally important. But if you’ve already got good alt text, a caption that describes the image, and other text around it, all of which points to it being a beach in Mexico, then Googlebot will be less concerned about it being called “img10432.jpg” because it can still figure out what the image is of.
4) Any other suggestion to handle image rich site ??
It’s a good idea to try to include some descriptive text where you can. It makes it easier for both people and search engines to understand your page if there are actual words, sentences and paragraphs than just a series of pictures.