def METHOD_NAME(obj):
	"""
	Fetches a TextInfo instance suitable for reviewing the text in  the given object.
	@param obj: the NVDAObject to review
	@type obj: L{NVDAObject}
	@return: the TextInfo instance and the Scriptable object the TextInfo instance is referencing, or None on error. 
	@rtype: (L{TextInfo},L{ScriptableObject})
	"""
	try:
		pos=obj.makeTextInfo(textInfos.POSITION_CARET)
	except (NotImplementedError, RuntimeError):
		# No caret supported, try first position instead
		try:
			pos=obj.makeTextInfo(textInfos.POSITION_FIRST)
		except (NotImplementedError, RuntimeError):
			log.debugWarning("%s does not support POSITION_FIRST, falling back to NVDAObjectTextInfo"%obj.TextInfo)
			# First position not supported either, return first position from a generic NVDAObjectTextInfo 
			return NVDAObjectTextInfo(obj,textInfos.POSITION_FIRST),obj
	return pos,pos.obj